Comunidad de diseño web y desarrollo en internet online

Imagenes que suben al servidor pero no aparecen ...

Citar            
MensajeEscrito el 26 Ago 2007 03:21 am
Hola de nuevo

Tengo el siguiente problema con un panel de gestión.
Básicamente se trata de subir 6 fotos, le doy a enviar y listo. Me aparece el resultado como que se subieron correctamente, de hecho miro en 'phpmyAdmin' y en la tabla se imprimieron correctamente, pero y sin embargo, no aparecen en el directorio !
Alguien me explica que puede ser ?

Aqui les dejo el código de la gestión :
Atención : Fíjense que utilicé indistintamente 'move_uploaded_file' y 'copy', pero el resultado es el mismo, las imágenes no se guardan en el directorio.

Código :

conectar();
$nombre = $_REQUEST['nombre'];
$descripcion = $_REQUEST['descripcion'];
$foto01_name= $HTTP_POST_FILES['foto01']['name'];
$foto02_name= $HTTP_POST_FILES['foto02']['name'];

$validar=1;

if (isset($Submit)):
if ($validar==1)
{
if ($foto01_name<>"")
{
$rename=$nombre;
$rename.="_";
$rename.=$foto01_name;
$foto01_name=$rename;
move_uploaded_file("$foto01", "fotos/$foto01_name");
}         
if ($foto02_name<>"")
{
$rename=$nombre;
$rename.="_";
$rename.=$foto02_name;
$foto02_name=$rename;
copy("$foto02", "fotos/$foto02_name");   
}   
$sql="INSERT INTO articulos VALUES (NULL,'$nombre','$descripcion','$foto01_name','$foto02_name')";
mysql_query($sql);
print (" <script language='JavaScript'>alert('Articulo añadido');</script> ");
}   
endif;


No sé que más probar, la verdad
Gracias de antemano
--

Por Aitcar

Claber

145 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 26 Ago 2007 09:45 pm
Hola...

No me queda claro qué valor toma la variable $foto01, no parece que tomara ningún valor (lo mismo para $foto02).
La función move_uploaded_file devuelve true si se pudo mover el archivo o false en caso contrario, deberías verificar que esta función está haciendo correctamente su trabajo (lo mismo para copy(), con la salvedad de que no puedes usar copy() fuera de tu home). Pero antes que eso deberías usar is_uploaded_file para verificar que el archivo está en la directorio temporal del servidor web.

Finalmente, el array superglobal $HTTP_POST_FILES está obsoleto. Mejor usa $_FILES. Sería bueno que a modo de prueba hicieras un script que te mostrara qué valores toma $_FILES para tener en claro dónde buscar la información para mover/renombrar los archivos subidos.

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 27 Ago 2007 09:55 pm
Pruebo lo siguiente :

Código :

 $copiado = move_uploaded_file($foto01, "fotos/".$foto01_name);
            if($copiado==false){ 
print "error"; 
}else{ 
print "ok"; 
} 


Y efectivamente me está imprimiendo el error. También he cambiado a $_FILES pero nada.
Como digo, en la tabla si queda reflejado el nombre del archivos como que se ha subido, pero no se ha guardado en el directorio

Un saludo
--

Por Aitcar

Claber

145 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 28 Ago 2007 01:21 am
Y yo insisto que para mi las variables $foto01 y $foto02 no tienen ningún valor (están vacías).

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 29 Ago 2007 12:32 am
Bueno DriverOP, gracias por tu ayuda.

De esta manera ya me suben los archivos al directorio correcpondienet, pero ahora la cosa es que al renombrar el archivo subido, se sube sin renombrar.
Es decir, si estoy subiendo 1.jpg, tendría que guardarse como jose_1.jpg ( de hecho así queda en la consulta ) pero no guarda el renombre ;

Código :

if(is_uploaded_file($_FILES['foto01']['tmp_name'])) 
         {
      $rename=$nombre;
      $rename.="_";
      $rename.=$foto01_name;
      $foto01_name=$rename;
      if(move_uploaded_file($_FILES['foto01']['tmp_name'], "fotos/".$_FILES['foto01']['name']))
       {
   echo "El archivo ". $_FILES['foto01']['name'] ." fue cargado
   satisfactoriamente.\n";
} else {
print "error"; 


Un saludo

Por Aitcar

Claber

145 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 29 Ago 2007 07:09 am
Copio tu código luego de eliminar lo que no hace nada útil en el código:

Código :

if(is_uploaded_file($_FILES['foto01']['tmp_name'])) 
         {
      if(move_uploaded_file($_FILES['foto01']['tmp_name'], "fotos/".$_FILES['foto01']['name']))
       {
   echo "El archivo ". $_FILES['foto01']['name'] ." fue cargado
   satisfactoriamente.\n";
} else {
print "error"; 

Como verás, las sentencias que están entre los dos if no influyen para nada en el resto del código ¿por qué será? :P.

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 30 Ago 2007 02:11 am
Vale de acuerdo, estaba de más esa sentencia.

Ahora ya me funciona pero sólo tengo un pequeño fallo, y es que como ya dije, al subir un fichero le digo que lo renombre tomando la variable $nombre de cada caso.
Así, si subo 1.jpg al cliente Pedro, me lo renombrará de esta forma 'Pedro_1.jpg'... PERO, el problema es que si le pongo de nombre Pedro Perez en la caja, me lo renombrará así 'Pedro_Perez_1.jpg' y en el FTP veo que me subió 'Pedro Perez_jpg', es decir, no creó el primer guión bajo.
Dicho esto y por lo tanto, la consulta no encontrará el archivo

Código :

                                                   $rename=$nombre;
            $rename.="_";
            $rename.=$foto01_name;
            $foto01_name=$rename;
            $_FILES['foto01']['name']= ereg_replace (" ", "_", $rename);
         if(move_uploaded_file($_FILES['foto01']['tmp_name'], "fotos/".$_FILES['foto01']['name']))
          {
   echo "El archivo ". $_FILES['foto01']['name'] ." fue cargado
   satisfactoriamente.\n";
} else {
print "error"; 


Gracias, y a ver si ya consigo solucionar esto

Por Aitcar

Claber

145 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 30 Ago 2007 02:19 am
Bueno ya lo tengo, dejo la solución final para quien haya estado siguiendo el post.
Modifiqué esta linea ;

Código :

$_FILES['foto01']['name']= ereg_replace ("_", "_", $rename);


Un saludo y gracias

Por Aitcar

Claber

145 de clabLevel



Genero:Masculino  

msie

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.