Foros del Web » Programando para Internet » PHP »

error al subir mutiples archivos

Estas en el tema de error al subir mutiples archivos en el foro de PHP en Foros del Web. hola. estoy realizando mantenimiento de productos. utilizo la clase upload.class. en la interfaz del formulario esta rellenar los datos del producto y subir multiple imagens. ...
  #1 (permalink)  
Antiguo 08/02/2012, 14:13
(Desactivado)
 
Fecha de Ingreso: abril-2008
Mensajes: 787
Antigüedad: 16 años, 7 meses
Puntos: 7
Pregunta error al subir mutiples archivos

hola. estoy realizando mantenimiento de productos. utilizo la clase upload.class. en la interfaz del formulario esta rellenar los datos del producto y subir multiple imagens. pero al subirlo me da el siguiente error.

al colocar la otra instancia de upload.class (el codigo) para agregar la imagen redimensionada, me genera los siguientes errores:

Warning: getimagesize(C:\Windows\Temp\php4AAF.tmp) [function.getimagesize]: failed to open stream: No such file or directory in D:\AppServ\www\comenzando-desde-cero\repaso 9 (upload class)\ejemplo8 (cms galerias)\includes\class.upload.php on line 2877

Warning: fopen(C:\Windows\Temp\php4AAF.tmp) [function.fopen]: failed to open stream: No such file or directory in D:\AppServ\www\comenzando-desde-cero\repaso 9 (upload class)\ejemplo8 (cms galerias)\includes\class.upload.php on line 2936

Warning: move_uploaded_file(C:\Windows\Temp\php4AAF.tmp) [function.move-uploaded-file]: failed to open stream: No such file or directory in D:\AppServ\www\comenzando-desde-cero\repaso 9 (upload class)\ejemplo8 (cms galerias)\includes\class.upload.php on line 3635

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move 'C:\Windows\Temp\php4AAF.tmp' to 'imagenes/\bdbeb06ac78a1880775d5448fe2df846.jpg' in D:\AppServ\www\comenzando-desde-cero\repaso 9 (upload class)\ejemplo8 (cms galerias)\includes\class.upload.php on line 3635


es es el codigo que me genera error:

Código PHP:
Ver original
  1. $imagen_thb = new Upload($file);
  2.                            
  3. $imagen_thb->file_new_name_body   = "thb_".$nombre_imagen;
  4. $imagen_thb->image_resize         = true;  
  5. $imagen_thb->image_x              = 40;                    
  6. $imagen_thb->Process('imagenes/');
  7. $nombre_imagen = $imagen_thb->file_dst_name;

este es mi codigo completo.

Código PHP:
Ver original
  1. // empieza el 1er if.
  2.     if(!isset($_POST['editar']))
  3.     {  
  4.         // defino la funcion agregar_producto() para agregar los productos.
  5.         agregar_producto($nombre_producto,$precio_producto,$detalle,$cantidad);
  6.        
  7.         if(isset($_FILES))
  8.         {
  9.             $idproducto = mysql_insert_id();
  10.            
  11.             foreach($_FILES as $files => $file)
  12.             {
  13.                 if(isset($file['name']) && !$file['error'] && $file['size']!=0)
  14.                 {
  15.                    
  16.                     $f=1;
  17.                     while($f)
  18.                     {
  19.                         $nombre_imagen = $f.$file['name'];
  20.                         clearstatcache();
  21.                        
  22.                         if (file_exists($nombre_imagen))
  23.                             $f++;
  24.                         else
  25.                             $f=0;
  26.                     }                  
  27.                        
  28.                         // we instanciate the class for each element of $file
  29.                         $handle = new Upload($file);
  30.                        
  31.                         // then we check if the file has been uploaded properly
  32.                         // in its *temporary* location in the server (often, it is /tmp)
  33.                         if ($handle->uploaded)
  34.                         {
  35.                             $handle->image_resize            = true;
  36.                             $handle->image_ratio_y           = true;
  37.                             $handle->image_x                 = 380;
  38.                             $handle->Process('imagenes/');
  39.                            
  40.                             // creo una variable $nombre_imagen para enviar los nombres de las imagenes.
  41.                             $nombre_imagen = $handle->file_dst_name;
  42.                             $handle->clean();                          
  43.                         }
  44.                        
  45.                             $imagen_thb = new Upload($file);
  46.                             $imagen_thb->image_resize         = true;  
  47.                             $imagen_thb->image_x              = 40;                    
  48.                             $imagen_thb->Process('imagenes/');
  49.                             $foto_imagen_thb = $imagen_thb->file_dst_name;
  50.                        
  51.                         // pregunto si la variable a ingresar esta o no vacia.
  52.                         if($nombre_imagen!="")
  53.                         {
  54.                             // hacemos el insert para la tabla puente que en este caso es galeria_producto
  55.                             $sql_galeria_fotos  = "INSERT INTO galeria_producto(idproducto,imagen,imagen_thb)VALUES('$idproducto','$nombre_imagen','$foto_imagen_thb')";
  56.                             query($sql_galeria_fotos,$cn) or die(mysql_error());               
  57.                            
  58.                             echo "<br />";
  59.                             echo $sql_galeria_fotos;
  60.                             echo "<br />";
  61.                            
  62.                             if($_POST['pagina']!="")
  63.                             {
  64.                                 $pagina = $_POST['pagina'];
  65.                                 $a = "&pagina=$pagina";
  66.                             }          
  67.                            
  68.                         }
  69.                        
  70.                         //header("Location:index.php?ok=1$a");
  71.        
  72.                 }
  73.                
  74.             } // termina el bucle foreach.
  75.            
  76.            
  77.         }
  78.        
  79.     }

saludos.

Última edición por esaenz22; 08/02/2012 a las 14:20 Razón: correccion del post.
  #2 (permalink)  
Antiguo 08/02/2012, 14:28
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: error al subir mutiples archivos

Pues sí lees el error, te dice que no existe la imagen temporal, asegurate que el archivo se esta subiendo correctamente, puedes usar is_uploaded_file para eso.

Saludos.
  #3 (permalink)  
Antiguo 08/02/2012, 14:49
(Desactivado)
 
Fecha de Ingreso: abril-2008
Mensajes: 787
Antigüedad: 16 años, 7 meses
Puntos: 7
Respuesta: error al subir mutiples archivos

he colocado is_uploaded_file y si me muestra error.

Código PHP:
Ver original
  1. if (is_uploaded_file($_FILES))
  2. {
  3.     $handle_thb = new Upload($file);
  4.     $handle_thb->image_resize            = true;
  5.     $handle_thb->image_ratio_y           = true;
  6.     $handle_thb->image_x                 = 200;
  7.     $handle_thb->Process('imagenes/thumbnail/');
  8.     $imagen_thb = $handle_thb->file_dst_name;
  9.     $handle_thb->clean();
  10. }
  11. else
  12. {
  13.     echo "error";
  14. }

lo que no entiendo si la variable $file esta recorriendo los nombres de las imagenes con el bucle foreach.

saludos.
  #4 (permalink)  
Antiguo 08/02/2012, 14:56
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: error al subir mutiples archivos

La función se la debes de aplicar al archivo temporal:
Código PHP:
Ver original
  1. if (is_uploaded_file($_FILES['userfile']['tmp_name'])) {
  2.      // stuff
  3. }

No a todo el array $_FILES.

Saludos.
  #5 (permalink)  
Antiguo 08/02/2012, 15:01
(Desactivado)
 
Fecha de Ingreso: abril-2008
Mensajes: 787
Antigüedad: 16 años, 7 meses
Puntos: 7
Respuesta: error al subir mutiples archivos

olvide especificar que no estoy enviando con input file para guardar las demas fotos. los nomres los genero con create element.

si leyo mi codigo, se dara cuenta.
  #6 (permalink)  
Antiguo 08/02/2012, 15:23
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: error al subir mutiples archivos

No importa como crees los elementos, en el servidor si los creaste correcto están en el arreglo $_FILES, y es donde debes de trabajar con ellos.

Debes de usar is_uploaded_file, y también verificar la entrada 'error' esta debe de ser igual a 0 (o a UPLOAD_ERR_OK) de lo contrario puedes ver aquí:

http://us.php.net/manual/en/features...oad.errors.php

La causa del error.

Saludos.
  #7 (permalink)  
Antiguo 08/02/2012, 15:26
(Desactivado)
 
Fecha de Ingreso: abril-2008
Mensajes: 787
Antigüedad: 16 años, 7 meses
Puntos: 7
Respuesta: error al subir mutiples archivos

lo tomare en cuenta Gatorv.

gracias y saludos.

Etiquetas: formulario, imagenes, mysql, sql, tabla, variables
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 22:09.