Foros del Web » Programando para Internet » PHP »

Almacenar varias fotos en carpeta

Estas en el tema de Almacenar varias fotos en carpeta en el foro de PHP en Foros del Web. Hola: Tengo un código para crear una carpeta y almacenar varias fotos en ella. El problema es que me está haciendo la carpeta pero no ...
  #1 (permalink)  
Antiguo 12/06/2013, 07:48
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 11 años, 2 meses
Puntos: 15
Pregunta Almacenar varias fotos en carpeta

Hola:

Tengo un código para crear una carpeta y almacenar varias fotos en ella. El problema es que me está haciendo la carpeta pero no guarda las fotos y el error esta en el nombre de las fotos que no se como ponerlo. Este es mi código:

Código PHP:
Ver original
  1. $ruta1 = '../../images/galeria/large/'.$codigo.'/';
  2. $ruta2 = '../../images/galeria/thumbnails/'.$codigo.'/';
  3.  
  4.  
  5. if (file_exists($ruta1)) {
  6. $i = 1;
  7. foreach($_FILES as $value){
  8.    // Si la imagen fue subida correctamente
  9.    if ( $value['error'] == UPLOAD_ERR_OK ){
  10.         $image = new ResizePicture($value['tmp_name']);
  11.  
  12.         $image->resize(444,420);
  13.         $w444 = $_FILES['foto']['name'];
  14.         $image->save($ruta1.$w444);
  15.  
  16.         $image->resize(54,54);
  17.         $w54 = $_FILES['foto']['name'];
  18.         $image->save($ruta2.$w54);
  19.      
  20.          $i++;
  21.     }
  22. }
  23.  
  24.    
  25.    
  26. } else {
  27. mkdir($ruta1);
  28. mkdir($ruta2);
  29.  
  30. $i = 1;
  31. foreach($_FILES as $value){
  32.    // Si la imagen fue subida correctamente
  33.    if ( $value['error'] == UPLOAD_ERR_OK ){
  34.         $image = new ResizePicture($value['tmp_name']);
  35.  
  36.         $image->resize(444,420);
  37.     $w444 = $_FILES['foto']['name'];
  38.         $image->save($ruta1.$w444);
  39.  
  40.         $image->resize(54,54);
  41.     $w54 = $_FILES['foto']['name'];
  42.         $image->save($ruta2.$w54);
  43.          $i++;
  44.     }
  45. }
  46. }

y este es el form donde se cargan:

Código HTML:
Ver original
  1. <form action="f_cargadas.php" name="form2" enctype="multipart/form-data" id="form2" method="post" >
  2. <th colspan="2">CARGAR FOTOS</th>
  3.     <tr>
  4.     <td>FOTO 1</td>
  5.             <td><input type="file" name="foto[]" id="foto1" /></td>
  6.         </tr>    
  7.     <tr>
  8.     <td>FOTO 2</td>
  9.             <td><input type="file" name="foto[]" id="foto2" /></td>
  10.         </tr>    
  11.     <tr>
  12.     <td>FOTO 3</td>
  13.             <td><input type="file" name="foto[]" id="foto3" /></td>
  14.         </tr>    
  15.     <tr>
  16.     <td>FOTO 4</td>
  17.             <td><input type="file" name="foto[]" id="foto4" /></td>
  18.         </tr>    
  19.     <tr>
  20.     <td>FOTO 5</td>
  21.             <td><input type="file" name="foto[]" id="foto5" /></td>
  22.         </tr>    
  23.     <tr>
  24.     <td>FOTO 6</td>
  25.             <td><input type="file" name="foto[]" id="foto6" /></td>
  26.         </tr>    
  27.     <tr>
  28.     <td>FOTO 7</td>
  29.             <td><input type="file" name="foto[]" id="foto7" /></td>
  30.         </tr>    
  31.     <tr>
  32.     <td>FOTO 8</td>
  33.             <td><input type="file" name="foto[]" id="foto8" /></td>
  34.         </tr>
  35.         <tr>
  36.     <td>FOTO 9</td>
  37.             <td><input type="file" name="foto[]" id="foto9" /></td>
  38.         <tr>
  39.           <td colspan="2" align="center"><input name="cargar" type="submit" id="cargar" value="Cargar" /></td>
  40.         </tr>
  41.       </form>

Por qué no puedo cargarlas???

Gracias
__________________
Caminando con el corazón partío
  #2 (permalink)  
Antiguo 12/06/2013, 08:38
 
Fecha de Ingreso: septiembre-2007
Ubicación: PyRoot
Mensajes: 1.515
Antigüedad: 12 años
Puntos: 188
Respuesta: Almacenar varias fotos en carpeta

Hola colega.

La clase ResizePicture es una clase que te descargaste por ahí?? Si la estás incluyendo en tu archivo??

Yo te recomendaría primeramente utilizar la Clase GD que ya viene de fábrica en PHP

Posteriormente verificar que tus directorios en donde deseas guardar las imágenes tengan permisos de escritura


Puedes redimencionarla utilizando 'imagescale' u hay muchas otras formas.

Buscando en google: "Redimencionar imagenes GD PHP" te salen varias cosillas interesantes que soy muy útiles.

Un saludo

EDITO:

Por el momento intenta colocar el path completo de la ruta en donde deseas guardar por ejemplo

$ruta1= '/home/user/public_html/mydirectory/anotherdirectory/blablabla/images/'
__________________
Si quieres agradecer el triangulo obscuro de la parte derecha debes presionar +.
  #3 (permalink)  
Antiguo 12/06/2013, 08:44
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 11 años, 2 meses
Puntos: 15
Respuesta: Almacenar varias fotos en carpeta

Gracias iovan, pero este codigo antes me funcionaba perfectamente porque yo le indicaba el nombre de la foto asi:

Código PHP:
Ver original
  1. $w444 = $foto_nombre. '_' .$i. '.' . $extension;

donde $foto_nombre venia de $foto_nombre = substr($id_foto,0,-4);. Esto me guardaba las fotos con un nombre secuencial especifico. Ahora lo quiero hacer asi porque necesito que vaya con su nombre original pues se me presenta el problema de que al querer agregar mas fotos, lo que hace es sobreescribir porque siempre empieza desde 1,2,3,4.

De todas formas voy a consultar los enlaces que me indicas.

Gracias nuevamente.
__________________
Caminando con el corazón partío
  #4 (permalink)  
Antiguo 12/06/2013, 09:01
 
Fecha de Ingreso: septiembre-2007
Ubicación: PyRoot
Mensajes: 1.515
Antigüedad: 12 años
Puntos: 188
Respuesta: Almacenar varias fotos en carpeta

En ese caso para evitar que se te sobreescriban te recomiendo que les asignes un nombre alfanumérico generado aleatoriamente.

Si quieres puedes utilizar esta clase para generar un string:

Código PHP:
Ver original
  1. public function getRandomString($length = 20, $uc = true, $n = true, $sc = false, $ltr = true) {
  2.        
  3.         if($ltr)
  4.             $source = 'abcdefghijklmnopqrstuvwxyz';
  5.         else
  6.             $source = '';
  7.        
  8.         if ($uc == 1)
  9.             $source .= 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
  10.         if ($n == 1)
  11.             $source .= '1234567890';
  12.         if ($sc == 1)
  13.             $source .= '-_';
  14.         if ($length > 0) {
  15.             $rstr = "";
  16.             $source = str_split($source, 1);
  17.             for ($i = 1; $i <= $length; $i++) {
  18.                 mt_srand((double) microtime() * 1000000);
  19.                 $num = mt_rand(1, count($source));
  20.                 $rstr .= $source[$num - 1];
  21.             }
  22.         }
  23.         return $rstr;
  24.     }

Y después a este string le colocas la extensión de la imagen al final y obtienes el nuevo nombre de imagen.
__________________
Si quieres agradecer el triangulo obscuro de la parte derecha debes presionar +.

Etiquetas: almacenar, carpeta, fotos
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 02:26.