Foros del Web » Programando para Internet » PHP »

como puedo insertar una imagen a dos carpetas a mismo tiempo

Estas en el tema de como puedo insertar una imagen a dos carpetas a mismo tiempo en el foro de PHP en Foros del Web. hola a todos me gustaria saver como puedo modificar este codigo para insertar una imagen a dos carpetas deferentes tengo una carpeta que se llama ...
  #1 (permalink)  
Antiguo 06/08/2015, 05:54
 
Fecha de Ingreso: julio-2015
Mensajes: 21
Antigüedad: 9 años, 3 meses
Puntos: 0
como puedo insertar una imagen a dos carpetas a mismo tiempo

hola a todos me gustaria saver como puedo modificar este codigo para insertar una imagen a dos carpetas deferentes
tengo una carpeta que se llama (imagenes) y otra se llama (thumbs) como puedo modificar este codigo para que me suba la imagen a la carpeta (thumbs) tambien o copiar la en esta carpeta
es decir que quiero que cuando subo la imagen la tengo en las dos carpetas(la misma imagen)
mi codigo es este

Código PHP:
Ver original
  1. <?php  
  2. function mysql_escape($cadena) {  //funcion para limpiar campos del form de codigo malicioso  
  3.     if(get_magic_quotes_gpc() != 0) {  
  4.         $cadena = stripslashes($cadena);  
  5.     }  
  6.     return mysql_real_escape_string($cadena);  
  7. }    
  8.  
  9.  
  10.  
  11. if(isset($_FILES['fichero']['name'])) {  //comprovamos que se haya cargado el archivo  
  12.  
  13.    if(is_uploaded_file($_FILES['fichero']['tmp_name'])) {  
  14.      
  15.      
  16.    //empieza la redimension, tomamos la imagen temporal subida que puede ser jpg, png o gif  
  17.    $info = getimagesize($_FILES['fichero']['tmp_name']);  
  18.    //segun el caso sera jpg, gif, png  
  19.    switch ($info[2]) {  
  20.   case 1:  
  21.     $imagen = imagecreatefromgif($_FILES['fichero'] ['tmp_name']); break;  
  22.   case 2:  
  23.     $imagen = imagecreatefromjpeg($_FILES['fichero'] ['tmp_name']); break;  
  24.   case 3:  
  25.     $imagen = imagecreatefrompng($_FILES['fichero'] ['tmp_name']); break;  
  26.   // etcétera //  
  27.   }  
  28.  
  29. $original = $imagen;  
  30. $original_w = imagesx($original);  
  31. $original_h = imagesy($original);  
  32.  
  33.  
  34.  
  35.  
  36. $max = 500;  //AQUI PONES EL TAMAÑO DE LA IMAGEN A LO QUE QUIERAS segun la tabla donde la muestres  
  37.  
  38. if($original_w>$original_h) {
  39.     $muestra_w = $max;  
  40.     $muestra_h = intval(($original_h/$original_w)*$max);  
  41.     } else {  
  42.     $muestra_w = intval(($original_w/$original_h)*$max);  
  43.     $muestra_h = $max;  
  44.     }  
  45.  
  46. $muestra = imagecreatetruecolor($muestra_w,$muestra_h);  
  47. imagecopyresampled($muestra,$original,0,0,0,0, $muestra_w,$muestra_h,$original_w,$original_h);//aqui se crea la imagen en la variable $muestra  
  48.  
  49. imagedestroy($original); // aqui destruyo el original, pues no hace falta ya  
  50.  
  51.  
  52.  
  53. // comenzamos a guardar el archivo  
  54.  
  55.         $ruta_destino = "[B]imagenes/[/B]";
  56.  
  57.  
  58.  
  59.         $namefinal= trim ($_FILES['fichero']['name']);
  60.         $namefinal= ereg_replace (" ", "", $namefinal); nombre para no tener
  61.         $uploadfile= $ruta_destino . $namefinal; //monto la ruta seguida del nombre del archivo en $uploadfile  
  62.         if(imagejpeg($muestra,$uploadfile,'100')) { // se coloca en su lugar final,  el 100 el la calidad del jpg  
  63.                     echo "<b>Upload exitoso!. Datos:</b><br>";  
  64.             echo "Nombre: <i><a href=\"".$uploadfile."\">".$_FILES['fichero']['name']."</a></i><br>";  
  65.             echo "Tipo MIME: <i>".$_FILES['fichero']['type']."</i><br>";  
  66.                     echo "Peso: <i>".$_FILES['fichero']['size']." bytes</i><br>";  
  67.                         echo "<br><hr><br>";
  #2 (permalink)  
Antiguo 06/08/2015, 05:57
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 9 años, 5 meses
Puntos: 263
Respuesta: como puedo insertar una imagen a dos carpetas a mismo tiempo

Prueba adaptando la función copy de php aqui el Manual PHP - copy()
__________________
[email protected]
HITCEL
  #3 (permalink)  
Antiguo 06/08/2015, 07:30
 
Fecha de Ingreso: julio-2015
Mensajes: 21
Antigüedad: 9 años, 3 meses
Puntos: 0
Respuesta: como puedo insertar una imagen a dos carpetas a mismo tiempo

gracias por la respuesta la pagina esta en ingles y no entiendo mucho de ingles como lo hago ( copy file) mas o menos
gracias
  #4 (permalink)  
Antiguo 06/08/2015, 08:01
Avatar de Uncontroled_Duck
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Málaga [Spain]
Mensajes: 806
Antigüedad: 13 años, 6 meses
Puntos: 261
Respuesta: como puedo insertar una imagen a dos carpetas a mismo tiempo

Cita:
Iniciado por maitara Ver Mensaje
gracias por la respuesta la pagina esta en ingles y no entiendo mucho de ingles como lo hago ( copy file) mas o menos
gracias
¿Has probado a seleccionar el idioma en Español?
__________________
Todos agradeceremos que pongas el código en su respectivo Highlight
  #5 (permalink)  
Antiguo 06/08/2015, 09:07
 
Fecha de Ingreso: julio-2015
Mensajes: 21
Antigüedad: 9 años, 3 meses
Puntos: 0
Respuesta: como puedo insertar una imagen a dos carpetas a mismo tiempo

lo hecho asi pero me sale este error



Warning: copy(imagenes/) [function.copy]: failed to open stream: Permission denied in C:\AppServ\www\d\perfil.php on line 443


gracias









Código PHP:
Ver original
  1. <?php  
  2. function mysql_escape($cadena) {  //funcion para limpiar campos del form de codigo malicioso  
  3.     if(get_magic_quotes_gpc() != 0) {  
  4.         $cadena = stripslashes($cadena);  
  5.     }  
  6.     return mysql_real_escape_string($cadena);  
  7. }    
  8.  
  9.  
  10.  
  11. if(isset($_FILES['fichero']['name'])) {  //comprovamos que se haya cargado el archivo  
  12.  
  13.    if(is_uploaded_file($_FILES['fichero']['tmp_name'])) {  
  14.      
  15.      
  16.    //empieza la redimension, tomamos la imagen temporal subida que puede ser jpg, png o gif  
  17.    $info = getimagesize($_FILES['fichero']['tmp_name']);  
  18.    //segun el caso sera jpg, gif, png  
  19.    switch ($info[2]) {  
  20.   case 1:  
  21.     $imagen = imagecreatefromgif($_FILES['fichero'] ['tmp_name']); break;  
  22.   case 2:  
  23.     $imagen = imagecreatefromjpeg($_FILES['fichero'] ['tmp_name']); break;  
  24.   case 3:  
  25.     $imagen = imagecreatefrompng($_FILES['fichero'] ['tmp_name']); break;  
  26.   // etcétera //  
  27.   }  
  28.  
  29. $original = $imagen;  
  30. $original_w = imagesx($original);  
  31. $original_h = imagesy($original);  
  32.  
  33.  
  34.  
  35.  
  36. $max = 500;  //AQUI PONES EL TAMAÑO DE LA IMAGEN A LO QUE QUIERAS segun la tabla donde la muestres  
  37.  
  38. if($original_w>$original_h) {
  39.     $muestra_w = $max;  
  40.     $muestra_h = intval(($original_h/$original_w)*$max);  
  41.     } else {  
  42.     $muestra_w = intval(($original_w/$original_h)*$max);  
  43.     $muestra_h = $max;  
  44.     }  
  45.  
  46. $muestra = imagecreatetruecolor($muestra_w,$muestra_h);  
  47. imagecopyresampled($muestra,$original,0,0,0,0, $muestra_w,$muestra_h,$original_w,$original_h);//aqui se crea la imagen en la variable $muestra  
  48.  
  49. imagedestroy($original); // aqui destruyo el original, pues no hace falta ya  
  50.  
  51.  
  52.  
  53. // comenzamos a guardar el archivo  
  54.         $ruta_destino = "imagenes/";
  55.  
  56. $origen = "imagenes/";
  57.  
  58. $destino = 'thumb/';
  59.    
  60.  
  61.     if (copy($origen, $destino."$fichero")) {
  62.            
  63.         echo "Se ha copiado correctamente la imagen";
  64.  
  65.         }
  66.        
  67.         else {
  68.        
  69.         echo "No se copiado la imagen correctamente";
  70.        
  71.         }
  72.  
  73.  
  74.  
  75.  
  76.  
  77.  
  78.  
  79.  
  80.  
  81.  
  82.  
  83.  
  84.  
  85.         $namefinal= trim ($_FILES['fichero']['name']);  
  86.         $namefinal= ereg_replace (" ", "", $namefinal);  
  87.         $uploadfile= $ruta_destino . $namefinal;  
  88.         if(imagejpeg($muestra,$uploadfile,'100')) {  
  89.                     echo "<b>Upload exitoso!. Datos:</b><br>";  
  90.             echo "Nombre: <i><a href=\"".$uploadfile."\">".$_FILES['fichero']['name']."</a></i><br>";  
  91.             echo "Tipo MIME: <i>".$_FILES['fichero']['type']."</i><br>";  
  92.                     echo "Peso: <i>".$_FILES['fichero']['size']." bytes</i><br>";  
  93.                         echo "<br><hr><br>";  
  94.                        
  95.  
  96.  
  97.                          
  98.  //insertamos en la BD los campos del form  
  99.  if(isset($_SESSION['usuario_id'])) // Aqui actualizaremos el perfil del usuario en la base de datos y le mostraremos que esta conectado
  100. {
  101. $orden = ("select * from usuarios where usuario_id = ". $_SESSION['usuario_id'] ."");
  102.  
  103. $reg = mysql_query("INSERT INTO datos (usuario_id, fichero, descripcion, usuario_freg) VALUES ('".$usuario_id."', '".$_FILES['fichero']['name']."', '".$descripcion."', NOW())");
  104.    
  105.    
  106. }
  107.  
  108.                                       }else{echo "no se guardo la foto, ni se inserto  en la Base de Datos";}  
  109.                      }else{echo "no se subio foto";}  
  110.            }else{echo "";}
  #6 (permalink)  
Antiguo 07/08/2015, 07:18
 
Fecha de Ingreso: julio-2015
Mensajes: 21
Antigüedad: 9 años, 3 meses
Puntos: 0
Respuesta: como puedo insertar una imagen a dos carpetas a mismo tiempo

alguien me puede ayudar gracias no logro copiar la imagen
  #7 (permalink)  
Antiguo 07/08/2015, 09:13
Avatar de chronos682  
Fecha de Ingreso: febrero-2004
Ubicación: Tunja - Boyacá - Colombia
Mensajes: 627
Antigüedad: 20 años, 9 meses
Puntos: 69
Respuesta: como puedo insertar una imagen a dos carpetas a mismo tiempo

Revisaste que la carpeta de destino tenga permisos de escritura?
__________________
Si te gustó la respuesta dale +1

HERNÁN G. SIABATO M.
[email protected]
  #8 (permalink)  
Antiguo 08/08/2015, 07:59
(Desactivado)
 
Fecha de Ingreso: abril-2015
Ubicación: España
Mensajes: 616
Antigüedad: 9 años, 7 meses
Puntos: 74
Respuesta: como puedo insertar una imagen a dos carpetas a mismo tiempo

Código PHP:
Ver original
  1. $origen = "imagenes/";
  2. $destino = 'thumb/';
  3. copy($origen, $destino."$fichero");

Con este código que has puesto estás tratando de copiar un directorio entero. Me parece que la función copy sólo permite copiar ficheros individuales. A parte, yo no veo que hayas declarado la variable $fichero.
  #9 (permalink)  
Antiguo 09/08/2015, 04:39
 
Fecha de Ingreso: julio-2015
Mensajes: 21
Antigüedad: 9 años, 3 meses
Puntos: 0
Respuesta: como puedo insertar una imagen a dos carpetas a mismo tiempo

gracias por la respuesta
puedes ayudarme en como lo hago mas o menos , como tengo que dejar el codigo
  #10 (permalink)  
Antiguo 09/08/2015, 08:19
 
Fecha de Ingreso: julio-2015
Mensajes: 21
Antigüedad: 9 años, 3 meses
Puntos: 0
Respuesta: como puedo insertar una imagen a dos carpetas a mismo tiempo

hola me sale este mensaje

Warning: Wrong parameter count for copy() in C:\AppServ\www\d\perfil.php on line 341



Código PHP:
Ver original
  1. $ruta_destino = "imagenes/thumbs/";    // Carpeta en la que guardaremos nuestros archivos  
  2.  
  3. if (copy("$fichero"))  
  4. {  
  5. echo "El fichero ha sido copiado con éxito";  
  6. } else {  
  7. echo "El fichero NO se ha podido copiar";  
  8. }


si alguien save como . lo agradesco su ayuda
gracias

Última edición por maitara; 09/08/2015 a las 08:43
  #11 (permalink)  
Antiguo 09/08/2015, 09:19
(Desactivado)
 
Fecha de Ingreso: abril-2015
Ubicación: España
Mensajes: 616
Antigüedad: 9 años, 7 meses
Puntos: 74
Respuesta: como puedo insertar una imagen a dos carpetas a mismo tiempo

Cita:
Iniciado por maitara Ver Mensaje
hola me sale este mensaje

Warning: Wrong parameter count for copy() in C:\AppServ\www\d\perfil.php on line 341



Código PHP:
Ver original
  1. $ruta_destino = "imagenes/thumbs/";    // Carpeta en la que guardaremos nuestros archivos  
  2.  
  3. if (copy("$fichero"))  
  4. {  
  5. echo "El fichero ha sido copiado con éxito";  
  6. } else {  
  7. echo "El fichero NO se ha podido copiar";  
  8. }


si alguien save como . lo agradesco su ayuda
gracias
La función copy() necesita DOS parámetros: Un origen y un destino. Tu sólo le has puesto un parámetro.
  #12 (permalink)  
Antiguo 09/08/2015, 13:26
 
Fecha de Ingreso: julio-2015
Mensajes: 21
Antigüedad: 9 años, 3 meses
Puntos: 0
Respuesta: como puedo insertar una imagen a dos carpetas a mismo tiempo

entonces amigo como lo hago es que no se ,si lo saves porque no me pones un ejemplo el codigo no es largo
muchas gracias de todos modos
  #13 (permalink)  
Antiguo 09/08/2015, 14:39
(Desactivado)
 
Fecha de Ingreso: abril-2015
Ubicación: España
Mensajes: 616
Antigüedad: 9 años, 7 meses
Puntos: 74
Respuesta: como puedo insertar una imagen a dos carpetas a mismo tiempo

Código PHP:
Ver original
  1. <?php
  2. $fichero = 'ejemplo.txt';
  3. $nuevo_fichero = 'ejemplo.txt.bak';
  4.  
  5. if (!copy($fichero, $nuevo_fichero)) {
  6.     echo "Error al copiar $fichero...\n";
  7. }
  8. ?>

http://php.net/manual/es/function.copy.php
  #14 (permalink)  
Antiguo 10/08/2015, 03:01
 
Fecha de Ingreso: julio-2015
Mensajes: 21
Antigüedad: 9 años, 3 meses
Puntos: 0
Respuesta: como puedo insertar una imagen a dos carpetas a mismo tiempo

gracias lo probare
  #15 (permalink)  
Antiguo 10/08/2015, 04:48
 
Fecha de Ingreso: julio-2015
Mensajes: 21
Antigüedad: 9 años, 3 meses
Puntos: 0
Respuesta: como puedo insertar una imagen a dos carpetas a mismo tiempo

hola y gracias por la ayuda, me sale este error


Warning: copy(imagenes/full/) [function.copy]: failed to open stream: Permission denied in C:\AppServ\www\d\perfil.php on line 346


como doy permisos a esta carpeta imagenes/full/
  #16 (permalink)  
Antiguo 10/08/2015, 05:33
Avatar de lauser
Moderator Unix/Linux
 
Fecha de Ingreso: julio-2013
Ubicación: Odessa (Ukrania)
Mensajes: 3.278
Antigüedad: 11 años, 4 meses
Puntos: 401
Respuesta: como puedo insertar una imagen a dos carpetas a mismo tiempo

Accedes mediante terminal o consola y:
En linux:
Código :
Ver original
  1. chmod -R 0777 /imagenes/full

En windows no estoy muy seguro... pero creo que era:
Código :
Ver original
  1. attrib -a -r -h -s /imagenes/full

Si tienes acceso mediante entorno gráfico... sería tan sencillo como click derecho sobre el archivo y propiedades.
__________________
Los usuarios que te responden, lo hacen altruistamente y sin ánimo de lucro con el único fin de ayudarte. Se paciente y agradecido.
-SOLOLINUX-
  #17 (permalink)  
Antiguo 10/08/2015, 05:36
 
Fecha de Ingreso: julio-2015
Mensajes: 21
Antigüedad: 9 años, 3 meses
Puntos: 0
Respuesta: como puedo insertar una imagen a dos carpetas a mismo tiempo

hola y asi me sale un error tambien


Warning: imagejpeg(): supplied argument is not a valid Image resource in C:\AppServ\www\d\perfil.php on line 373
no se guardo la foto, ni se inserto en la Base de Datos



el codigo es este


Código PHP:
Ver original
  1. $max=500; //(1Mb) Tamaño maximo del archivo a subir
  2.  
  3. $nuevodirectorio="imagenes1/";
  4. dir ($nuevodirectorio);
  5. $uploaddir = "$nuevodirectorio/";
  6. //A continuación tratamos el archivo de imagen, aplicando unas funciones en particular como medida de seguridad.
  7.  
  8. $filesize = $_FILES['upfile']['size'];
  9. $filename = trim($_FILES['upfile']['name']); //(trim elimina los posibles espacios al final y al principio del nombre del archivo)
  10. $filename = substr($filename, -20);// (con substr le decimos que coja solamente los últimos 20 caracteres por si el nombre fuera muy largo)
  11. $filename = ereg_replace(" ", "", $filename); //(con esta función eliminamos posibles espacios entre los caracteres del nombre)
  12. //Ahora creamos las condiciones que debe cumplir el archivo antes de ser almacenado en el servidor. Restringimos a .jpg ó .gif o .png
  13. //(tanto en mayusculas como en minúsculas) y finalmente cambiamos el archivo de la carpeta temporal a la final elegida.
  14. if($filesize < $max)
  15. {
  16.   if($filesize > 0)
  17.   {
  18.     if((ereg(".jpg", $filename)) || (ereg(".gif", $filename)) || (ereg(".png", $filename)) || (ereg(".JPG", $filename))|| (ereg(".GIF", $filename)) || (ereg(".PNG", $filename)))
  19.     {
  20.       $uploadfile = $uploaddir . $filename;
  21.       if (move_uploaded_file($_FILES['upfile']['tmp_name'], $uploadfile) )  
  22.       { [B]
  23.          $origen="imagenes1/".$filename;
  24.          $destino="imagenes2/".$filename; [/B]
  25.          copy($origen,$destino);
  26.       }  
  27.       else  
  28.       {
  29.         //print("mensaje");
  30.       }
  31.     }  
  32.     else  
  33.     {
  34.       //print("Sólo se permiten imágenes en formato jpg. y gif., no se ha podido adjuntar.");
  35.     }
  36.   }
  37. }
  #18 (permalink)  
Antiguo 10/08/2015, 07:48
 
Fecha de Ingreso: agosto-2015
Mensajes: 3
Antigüedad: 9 años, 3 meses
Puntos: 0
De acuerdo Respuesta: como puedo insertar una imagen a dos carpetas a mismo tiempo

Revisa esta parte de la linea :

Código PHP:
$uploadfile $uploaddir $filename
Te falta definir el tipo de archivo me refiero que si es png o jpg etc. Debe quedar algo asi :

Código PHP:
$uploadfile $uploaddir $filename ".jpg"
Espero que te pueda servir mas o menos o algo asi.. Saludos
  #19 (permalink)  
Antiguo 11/08/2015, 08:44
 
Fecha de Ingreso: julio-2015
Mensajes: 21
Antigüedad: 9 años, 3 meses
Puntos: 0
Respuesta: como puedo insertar una imagen a dos carpetas a mismo tiempo

gracias y podido subir imagenes a dos carpetas deferentes ahora me sale este problema que no puedo ingresar la imagen a la tabla imagenes de base de datos


me sale esto cuando subo la imagen

Successfully uploaded the mage


if(isset($_SESSION['usuario_id'])) // Aqui actualizaremos el perfil del usuario en la base de datos y le mostraremos que esta conectado
{
session_start();
$orden = ("select * from usuarios where usuario_id = ". $_SESSION['usuario_id'] ."");


$reg = mysql_query("INSERT INTO datos (usuario_id, userfile, descripcion, usuario_freg) VALUES ('".$usuario_id."', '".$_FILES['userfile']['name']."', '".$descripcion."', NOW())");


}

}else{echo "no se guardo la foto, ni se inserto en la Base de Datos";}
}else{echo "no se subio foto";}
}else{echo "";}





una parte del codigo me sale sin ejecutar y no se como hacer para que me sale solo que la imagen se subido(Successfully uploaded the mage)
  #20 (permalink)  
Antiguo 11/08/2015, 13:37
 
Fecha de Ingreso: julio-2015
Mensajes: 21
Antigüedad: 9 años, 3 meses
Puntos: 0
Respuesta: como puedo insertar una imagen a dos carpetas a mismo tiempo

gracias por todo alguien me puede ayudar en esto

Etiquetas: carpetas, mysql, tabla, tiempo, variable
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 12:12.