elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Problemas con funcion move_uploaded_file
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problemas con funcion move_uploaded_file  (Leído 7,618 veces)
sReOn_1R


Desconectado Desconectado

Mensajes: 403



Ver Perfil
Problemas con funcion move_uploaded_file
« en: 7 Febrero 2011, 12:16 pm »

Hola tengo un problema con la funcion move_uploaded_file,aunque la he utilizado otras veces y ha funcionado,esta vez tengo problemas,cuando quiero coger un archivo de mi pc y subirlo al servidor (tambien en mi pc,por lo tanto es un servidor local por el momento) me crea archivos vacios,con un tamaño de archivo de 0 bytes..
El codigo php es este:

Citar
$rutafoto= "fotos/mifoto.jpg"
if (is_uploaded_file($_FILES['file']['tmp_name'])) {
if (move_uploaded_file($_FILES['file']['tmp_name'],$rutafoto)) {
echo "El tamaño del archivo a subir es: "$_FILES['file']['size'].;
echo "<br />La ruta del fichero origen es: ".$_FILES['file']['tmp_name']."<br />";
echo "<br />La ruta del fichero de destino es: ".$rutafoto."<br />";
echo "<br />El archivo se ha movido correctamente <br />";
}   else {
echo "<br />El archivo no se ha movido";
};
Pues bien,todo lo imprime bien,se supone que move_uploaded_file se ejecuta,y de hecho crea un archivo,pero el archivo,está vacio..
En cambio el array $_FILES['file']['size'] contiene un tamaño muy superior a 0 bytes: 32680
Segun he mirado en foros, y demás,puede ser el archivo de configuracion de php.ini,pero creo que todo esta correctamente,copio la parte que creo que puede tener que ver,ya que este foro tiene un limite de caracteres que supera,aqui va:
Citar
;;;;;;;;;;;;;;;;;;;
; Resource Limits ;
;;;;;;;;;;;;;;;;;;;

; Maximum execution time of each script, in seconds
; http://php.net/max-execution-time
; Note: This directive is hardcoded to 0 for the CLI SAPI
max_execution_time = 30

; Maximum amount of time each script may spend parsing request data. It's a good
; idea to limit this time on productions servers in order to eliminate unexpectedly
; long running scripts.
; Note: This directive is hardcoded to -1 for the CLI SAPI
; Default Value: -1 (Unlimited)
; Development Value: 60 (60 seconds)
; Production Value: 60 (60 seconds)
; http://php.net/max-input-time
max_input_time = 60
;;;;;;;;;;;;;;;;
; File Uploads ;
;;;;;;;;;;;;;;;;

; Whether to allow HTTP file uploads.
; http://php.net/file-uploads
file_uploads = On

; Temporary directory for HTTP uploaded files (will use system default if not
; specified).
; http://php.net/upload-tmp-dir
upload_tmp_dir = /media/Datos/www/paginaweb

; Maximum allowed size for uploaded files.
; http://php.net/upload-max-filesize
upload_max_filesize = 70M

; Maximum number of files that can be uploaded via a single request
max_file_uploads = 20
Aunque no entiendo las dos opciones primeras que estan en negrita,he leido que puede tener que ver..
He resaltado con negrita las opciones que creo que pueden tener que ver con la configuración,pero yo creo que está bien configurado,pero ya dudo..estoy cansado de hacer pruebas y que no funciones :(
¿Se os ocurre que puede estar pasando?
Gracias


En línea






sReOn_1r
Diabliyo


Desconectado Desconectado

Mensajes: 1.441


shell# _


Ver Perfil WWW
Re: Problemas con funcion move_uploaded_file
« Respuesta #1 en: 7 Febrero 2011, 19:06 pm »

No creo que tu problema sea el servidor o la configuración del php.ini, creo que es mas de tu lado tu código o permisos (vagamente).... me gustaría ver que imprime después de que se supone hace la subida de la foto, muestranos los datos que imprimes.

Por otro lado el php.ini esta bien, la configuración que tiene es decente y no interfiere con el echo de subir una foto... sobre las dos  primeras sentencias estas significan:

max_execution_time = 30 quiere decir que si el script tarda mas de 30 segundos ejecutándose; sera detenido o frenado... Este parámetro debe ampliarse cuando se pretende subir cosas que duren mas de 30 segundos subiéndose.

max_input_time = 60 quiere decir que si el tiempo de INPUT excede los 60 segundos; se frenara el input... Este va mas enfocado al tiempo en que se hacen las consultas entre cliente-servidor.

Saludos !


En línea

Castg!
Wiki

Desconectado Desconectado

Mensajes: 1.191



Ver Perfil WWW
Re: Problemas con funcion move_uploaded_file
« Respuesta #2 en: 7 Febrero 2011, 20:08 pm »

Código
  1. $rutafoto= "fotos/".mt_rand(1000,9000).$_FILES['file']['name'];
  2. if (is_uploaded_file($_FILES['file']['tmp_name'])) {
  3. if (move_uploaded_file($_FILES['file']['tmp_name'],$rutafoto)) {
  4. echo "El tamaño del archivo a subir es: ".$_FILES['file']['size'];
  5. echo "<br />La ruta del fichero origen es: ".$_FILES['file']['tmp_name']."<br />";
  6. echo "<br />La ruta del fichero de destino es: ".$rutafoto."<br />";
  7. echo "<br />El archivo se ha movido correctamente <br />";
  8. } else {
  9. echo "<br />El archivo no se ha movido";
  10. }
  11. }

No se si el codigo que nos mostraste es identico al que usas, porque está llendo de errores de sintáxis.
Probá ese código que te di que guarda el archivo siempre en uno nuevo, tal vez así no da problemas. Sino, intenta con
Código
  1. copy();
pero move_uploaded_file no tendría que causar ningún tipo de problemas.
Podrías pegar exactamente lo que imprime TÚ script?
Saludos
En línea

.mokk.

Desconectado Desconectado

Mensajes: 177



Ver Perfil
Re: Problemas con funcion move_uploaded_file
« Respuesta #3 en: 9 Febrero 2011, 08:31 am »

Si quieres tambien puedes usar este que acabo de hacer es facil de entender, ademas de filtrar solo archivos jpg y png, ademas de crear un nombre random, viendo si ya hay algun archivo con ese nombre hace otro o mas bien crea otro nombre al moverlo.

La imagen la coloca en una carpeta llamada upload.

Código
  1. <?
  2. function Random() {
  3.    $length = 100;
  4.    $characters = '0123456789abcdefghijklmnopqrstuvwxyz';
  5.    $string = "";    
  6.  
  7.    for ($p = 0; $p < $length; $p++) {
  8.        $string .= $characters[mt_rand(0, strlen($characters))];
  9.    }
  10.  
  11.    return $string;
  12. }
  13. if(!isset($_POST['submit'])) { ?>
  14. <html>
  15. <body>
  16. <form method="post" enctype="multipart/form-data">
  17. <INPUT TYPE="hidden" name="MAX_FILE_SIZE" value="1000000"><br>
  18. Archivo:<br>
  19. <input type="file" name="archivo" size="40">
  20. <p><input type="submit" name="submit" value="submit">
  21. </form>
  22.  
  23. </BODY>
  24. </HTML>
  25. <? } else {
  26. $r = pathinfo($archivo_name);
  27. $r = strtolower($r['extension']);
  28. if($r != "jpg" && $r != "png") {
  29. echo "Archivo no permitido";
  30. die();
  31. }
  32. do {
  33. $archivo_name = Random() . "." . $r;
  34. }while(file_exists("./upload/".$archivo_name));
  35.     $copiado=move_uploaded_file($archivo, "./upload/".$archivo_name);
  36. if($copiado==false){
  37. print "Error al subir el archivo";
  38. }else{
  39. print "Archivo subido correctamente";
  40. }
  41. } ?>
« Última modificación: 9 Febrero 2011, 08:33 am por .mokk. » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
la funcion buscar da problemas
Sugerencias y dudas sobre el Foro
melele 3 2,495 Último mensaje 22 Noviembre 2004, 19:23 pm
por melele
problemas con la funcion Val
Programación Visual Basic
kakinets 1 1,587 Último mensaje 3 Junio 2006, 19:56 pm
por kakinets
move_uploaded_file()
PHP
chicuela66 3 3,457 Último mensaje 22 Diciembre 2006, 18:19 pm
por LuffyFF
Problemas con funcion copy()
PHP
Diabliyo 9 7,513 Último mensaje 10 Enero 2007, 20:44 pm
por Diabliyo
Problemas con una funcion en c
Programación C/C++
Leon8086x 2 2,333 Último mensaje 18 Septiembre 2011, 18:19 pm
por Leon8086x
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines