Foros del Web » Programando para Internet » PHP »

crea directorio con permisos 0777 pero no sube la imagen, me podéis ayudar?

Estas en el tema de crea directorio con permisos 0777 pero no sube la imagen, me podéis ayudar? en el foro de PHP en Foros del Web. Buenos días compañeros! Tengo un pequeño problemilla y recurro como siempre a vosotros jeje Tengo este código para subir imagenes: Código PHP: $max = 1500000 ...
  #1 (permalink)  
Antiguo 05/09/2011, 03:04
sidneyendis
Invitado
 
Mensajes: n/a
Puntos:
Pregunta crea directorio con permisos 0777 pero no sube la imagen, me podéis ayudar?

Buenos días compañeros!

Tengo un pequeño problemilla y recurro como siempre a vosotros jeje

Tengo este código para subir imagenes:
Código PHP:

$max
=1500000;
 
$nuevodirectorio="./galeria/$id";
mkdir ($nuevodirectorio);
chmod($nuevodirectorio0777);
$uploaddir "$nuevodirectorio";

$filesize $_FILES['upfile']['size'];
$filename trim($_FILES['upfile']['name']);

$filename substr($filename, -20);

$filename ereg_replace(" """$filename);

if(
$filesize $max){
if(
$filesize 0){ 
if((
ereg(".jpg"$filename)) || (ereg(".gif"$filename)) || (ereg(".png"$filename)) || (ereg(".JPG"$filename))|| (ereg(".GIF"$filename)) || (ereg(".PNG"$filename))){
$uploadfile $uploaddir $filename;
if (
move_uploaded_file($_FILES['upfile']['tmp_name'], $uploadfile)) {
print(
"Archivo subido correctamente");
} else {
print(
"Error de conexión con el servidor.");
}
} else {
print(
"Sólo se permiten imágenes en formato jpg., png. y gif., no se ha podido adjuntar.");
}
}
else {
print(
"<br><br>Campo vac&iacute;o, no ha seleccionado ninguna imagen");
}
}
else {
print(
"<br><br>La imagen que ha intentado adjuntar es mayor de 1.5 Mb, si desea cambie el tamaño del archivo y vuelva a intentarlo.");

Creo que el código está bien (digo creo porque no he tenido la oportunidad de verificarlo, ahora os explico), crea un nuevo directorio con el nombre del "id" del registro ($id) y con permisos 0777.

Todo funciona correctamente, pero el fallo lo tengo en que no carga la imagen, es decir, crea el directorio con los permisos 777 pero me salta el error de "campo vacio, no ha seleccionado ninguna imagen" (es el penúltimo "else").

Pensando en que el problema lo podia tener mi código, decidí probar primero con algo más sencillito:
Código PHP:
$destino "./galeria/70" 
        
move_uploaded_file $_FILES 'file' ][ 'tmp_name' ], $destino '/' $_FILES 'file' ][ 'name' ]); 
El "70" de la ruta era uno de los "id" ya creados para poder probarlo.
Bueno, con esta pequeña prueba tampoco funciona.

Entonces empiezo a pensar que puede ser otro tipo de problema de configuración...

¿Me podéis guiar un poco?

Un saludo muy grande!!
  #2 (permalink)  
Antiguo 05/09/2011, 05:17
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 1 mes
Puntos: 253
Respuesta: crea directorio con permisos 0777 pero no sube la imagen, me podéis ayudar

Si pones 253 ifs concatenados y no formateas el código normal que no sepas ni por qué tienes el error. Una vez formateado el código, puedes ver que el el if que no pasa es del de ($filesize > 0):
Código PHP:
Ver original
  1. if($filesize < $max){
  2.     if($filesize > 0){
  3.         if((ereg(".jpg", $filename)) || (ereg(".gif", $filename)) || (ereg(".png", $filename)) || (ereg(".JPG", $filename))|| (ereg(".GIF", $filename)) || (ereg(".PNG", $filename))){
  4.             $uploadfile = $uploaddir . $filename;
  5.             if (move_uploaded_file($_FILES['upfile']['tmp_name'], $uploadfile)) {
  6.                 print("Archivo subido correctamente");
  7.             } else {
  8.                 print("Error de conexi&oacute;n con el servidor.");
  9.             }
  10.         } else {
  11.             print("Sólo se permiten imágenes en formato jpg., png. y gif., no se ha podido adjuntar.");
  12.         }
  13.     } else {
  14.         print("<br><br>Campo vac&iacute;o, no ha seleccionado ninguna imagen");
  15.     }
  16. } else {
  17.     print("<br><br>La imagen que ha intentado adjuntar es mayor de 1.5 Mb, si desea cambie el tamaño del archivo y vuelva a intentarlo.");
  18. }

Si subes por tu código para ver dónde se inicializa $filesize podemos ver la siguiente línea:
Código PHP:
Ver original
  1. $filesize = $_FILES['upfile']['size'];

Todo esto parece estar bien, lo cual me lleva a plantearme una duda, crees que estás enviando bien el formulario? Para ver si esto lo estás haciendo bien, tienes que incluir un var_dump($_FILES)o var_dump($_FILES['upfile']) para ver qué trae dicha variable. Una vez visto esto seguiremos con otras hipótesis, pero lo primero es lo primero.


Por otro lado, nada tiene que ver (creo, pero nunca se sabe) con tu problema tienes dos funciones: ereg y ereg_replace que están OBSOLETAS. Yo las cambiaría por preg_match y preg_replace, aunque ten cuidado, porque tienes que modificar ligeramente las expresiones regulares con este cambio (por ejemplo, tendrás que rodear con //).

Mira lo que te he dicho y si sigue sin funcionarte, seguimos mirando.

Un saludo.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?
  #3 (permalink)  
Antiguo 05/09/2011, 17:31
sidneyendis
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: crea directorio con permisos 0777 pero no sube la imagen, me podéis ayudar

Hola vgonga1986!!

Muchas gracias nuevamente por tu interés en ayudarme....

bien. vamos por pasos:

he colocado "var_dump($_FILES);" y "var_dump($_FILES['upfile']);" y ambos me dan NULL.

He colocado "print_r($_FILES);" y me da Array()

También he colocado preg_match y preg_replace.... y nada.

Voy a probar en otro servidor el mismo código para descartar que el problema sea el código. Mientras tanto puedo, si me indicas que necesitas, hacer un "phpinfo();" he indicarte que me aparece en la sección que me indiques.

Bueno espero tu respuesta!

Un saludo muy grande!
  #4 (permalink)  
Antiguo 05/09/2011, 18:05
sidneyendis
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: crea directorio con permisos 0777 pero no sube la imagen, me podéis ayudar

pues... con mi otra web funciona perfectamente.... (sigo investigando...)
  #5 (permalink)  
Antiguo 05/09/2011, 18:47
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: crea directorio con permisos 0777 pero no sube la imagen, me podéis ayudar

Si var_dump($_FILES) te da null, es porque probablemente a tu formulario le falta el enctype correcto:
Código HTML:
Ver original
  1. <form enctype="multipart/form-data">

Saludos.
  #6 (permalink)  
Antiguo 06/09/2011, 03:19
sidneyendis
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: crea directorio con permisos 0777 pero no sube la imagen, me podéis ayudar

Sois geniales!! Solucionado!

Era lo que decias "GatorV", el enctype no era el correcto.

También muchísimas gracias "vgonga1986", sin tu respuesta habria sido imposible encontrar la solución.

Un saludo a ambos.

Etiquetas: mkdir, move_uploaded_file
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:34.