Foros de daboweb

MULTIMEDIA, Video digital, Grabación, Diseño gráfico, Diseño web, Programación => Webmasters - Diseño Web - Programación - Diseño gráfico => Mensaje iniciado por: DocBrown en 04 de Diciembre de 2006, 10:54:08 pm

Título: Problemas al subir archivos con php (SOLUCIONADO)
Publicado por: DocBrown en 04 de Diciembre de 2006, 10:54:08 pm
Buenas, estoy volviéndome loco con un script para subir archivos a un servidor con un formulario. Tengo los permisos de las carpetas pertinentes en 777 pero el is_uploaded_file() me devuelve false y no tira. Este mismo script lo usé en diferentes sitios sin ningún problema y no sé qué hacer, la verdad. ¿alguna idea?
Título: Re: Problemas al subir archivos con php
Publicado por: Liamngls en 05 de Diciembre de 2006, 01:00:55 am
Solo se me ocurre que pegues el código completo y a ver si alguien encuentra algún error o algo :)
Título: Re: Problemas al subir archivos con php
Publicado por: DocBrown en 05 de Diciembre de 2006, 09:27:08 am
Ahí va:
Código: [Seleccionar]
//nombre aleatorio para la foto
$caracteres="abcdefghijklmnopqrstuvwxyxABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
$NumCaracteres=strlen($caracteres);
$nombreFoto="";
for($i=0;$i<10;$i++){
$num=rand(0,$NumCaracteres-1);
$nombreFoto.=$caracteres[$num];
}

  $referencia=$_POST["referencia"];


//proceso de imágenes

$foto=$_FILES["foto"]["name"];
$ruta_foto="imagenes/".$foto;
$temporal=$_FILES["foto"]["tmp_name"];

  if(is_uploaded_file($temporal)){
switch($_FILES["foto"]["type"]){
case "image/jpeg":
case "image/pjpeg":
move_uploaded_file($temporal,$ruta_foto);
$imagen=imagecreatefromjpeg($ruta_foto);
//chmod($ruta_foto,0777);
$original_x=imagesx($imagen);
$original_y=imagesy($imagen);

if($original_x>1024 || $original_y>1024){
$final_x=1024;
$final_y=round(($original_y * $final_x) / $original_x);
}else{
$final_x=$original_x;
$final_y=$original_y;
}

$final=imagecreatetruecolor($final_x,$final_y);
imagecopyresampled($final, $imagen, 0, 0, 0, 0, $final_x, $final_y, $original_x, $original_y);
imagejpeg($final,$ruta_foto);

break;

default: echo "No se va a procesar la foto. Debe estar en formato JPEG. ";
}
  }else{
  echo "Error al subir la foto.";
exit();
  }

La creación aleatoria del nombre la hace correctamente, y he comprobado que en el formulario de envío los nombres de los input son correctos. El problema me viene en el if, que no lo cumple. No sé, es una cosa muy rara porque en la misma carpeta del mismo servidor hace unos días funcionaba y he recomprobado los permisos 17000 veces. ¿Será de la configuración del servidor?
Título: Re: Problemas al subir archivos con php
Publicado por: Gepetto en 06 de Diciembre de 2006, 12:04:57 am
El script así al primer vistazo lo veo bien... ¿No será un problema de las librerías GD?
Título: Re: Problemas al subir archivos con php
Publicado por: DocBrown en 06 de Diciembre de 2006, 02:21:24 am
Las librerías GD son para el manejo de imágenes no? Si es así no es ese el problema. Directamente no cumple la condición del if y salta al else. Estoy que no sé qué hacer. ¿Puede ser alguna configuración de servidor que no permita la subida de archivos por formulario?
Título: Re: Problemas al subir archivos con php
Publicado por: Gepetto en 06 de Diciembre de 2006, 08:42:23 am
Comprueba que esté file_uploads=On en el fichero de configuración php.ini
Título: Re: Problemas al subir archivos con php
Publicado por: DocBrown en 06 de Diciembre de 2006, 02:05:23 pm
Pues sí, está en On. Ya no sé si cortarme las venas o dejármelas largas :cry:
Título: Re: Problemas al subir archivos con php
Publicado por: Gepetto en 06 de Diciembre de 2006, 04:59:33 pm
Asegurate de que el fichero que quieres subir no supere el tamaño establecido en el campo "hidden" del formulario, ni el de la línea "upload_max_filesize" en el php.ini
Título: Re: Problemas al subir archivos con php
Publicado por: Gepetto en 06 de Diciembre de 2006, 05:15:11 pm
Y un par de cosas más:

-Prueba descomentando esta línea del script -> //chmod($ruta_foto,0777);
-Echa un vistazo a este otro script (http://www.webmasterlibre.com/2006/06/29/comprobar-el-soporte-para-gd-en-tu-servidor/), para ver si dispones de las librerías GD (y si es así, revisa que sean la versión 2).
Título: Re: Problemas al subir archivos con php
Publicado por: DocBrown en 06 de Diciembre de 2006, 06:01:48 pm
el upload_max_filesize está en 10M y estoy probando con unas pocas KB, las librerías GD están activadas (2.0.28) y el chmod lo comenté y descomenté varias veces. De cualquier forma, el tema de las librerías me daría errores en el proceso de las imágenes, pero no llega ahí, me da el mensaje que pongo en el else, es decir que no me cumple el "is_uploaded_file", con lo que está descartado el tema de librerías GD
Título: Re: Problemas al subir archivos con php
Publicado por: Gepetto en 06 de Diciembre de 2006, 08:34:03 pm
Ok. El problema tal y como lo planteas puede apuntar a varias posibles causas:

-Permisos (lo descartamos porque veo que ya los has cambiado, tanto en los directorios como en los scripts).
-Problemas con el fichero (como me imagino que habrás probado con varias imágenes, también lo descartamos).
-Configuración del php.ini (los descartamos, pero de todas formas echa un vistazo a la directiva "upload_tmp_dir").
-Error en el formulario de envío (se podría descartar porque hace unos días te funcionaba, pero si quieres pega el código aquí y lo miramos).


Si hace unos días te funcionaba todo perfectamente y no has tocado nada, la verdad es que es raro que de pronto te deje de funcionar. Yo probaría a utilizar algun otro script para subir ficheros (para asegurarme de si es cosa del código o de la configuración).

Ya nos comentarás...
Suerte.
Título: Re: Problemas al subir archivos con php
Publicado por: DocBrown en 07 de Diciembre de 2006, 08:29:43 am
el upload_tmp_dir está en 'local value' '/hsphere/local/home/carpeta_del_sitio/tmp' y 'master value' en '/tmp'.

También me estoy dando cuenta de una cosa. Pongo los permisos en 777 y al volver a mirarlos, no sé, al día siguiente por ejemplo, vuelven a estar en 775 ¿?

No sé, el mismo script lo tengo alojado en otro servidor de pruebas y funciona a la perfección
Título: Re: Problemas al subir archivos con php
Publicado por: Gepetto en 07 de Diciembre de 2006, 08:00:52 pm
¿Cual es la versión del intérprete? (si no lo sabes, lo puedes comprobar con la función "phpinfo" --->Ej: <? phpinfo(); ?>)

Para que funcione tu script, debe ser 4.0.1 o superior.
Título: Re: Problemas al subir archivos con php
Publicado por: DocBrown en 09 de Diciembre de 2006, 02:18:01 am
Es la 4.4.4
Título: Re: Problemas al subir archivos con php
Publicado por: DocBrown en 12 de Diciembre de 2006, 05:32:37 pm
Bueno, pues misteriosamente ahora funciona. Así sin hacer nada :???:
Título: Re: Problemas al subir archivos con php
Publicado por: destroyer en 12 de Diciembre de 2006, 07:29:10 pm

Me alegro, esperamos a ver si se mantiene en orden y llegado el caso lo comentas y ya cerrariamos el tema.

Un saludo
Título: Re: Problemas al subir archivos con php
Publicado por: DocBrown en 12 de Diciembre de 2006, 09:38:06 pm
Puedes cerrarlo ya si quieres. Si vuelve a dar problemas a lo bobo otra vez lo dejo todo y me dedico a la cría del cerdo vietnamita  :-d
Título: Re: Problemas al subir archivos con php
Publicado por: destroyer en 12 de Diciembre de 2006, 09:41:09 pm
 :mrgreen: :mrgreen: ok amigo...   ;-)