Foros del Web » Programando para Internet » PHP »

Subir imagen a 2 directorios diferentes

Estas en el tema de Subir imagen a 2 directorios diferentes en el foro de PHP en Foros del Web. Hola a todos Estoy intentando hacer una funcion para subir 1 imagen a 2 directorios diferentes a la vez pero no me funciona. La funcion ...
  #1 (permalink)  
Antiguo 17/11/2009, 11:16
 
Fecha de Ingreso: junio-2003
Mensajes: 778
Antigüedad: 20 años, 10 meses
Puntos: 1
Subir imagen a 2 directorios diferentes

Hola a todos

Estoy intentando hacer una funcion para subir 1 imagen a 2 directorios diferentes a la vez pero no me funciona. La funcion es esta:

Código:
function subir_imagen($nombre_imagen, $directorio, $directorio2, $nuevo_nombre, $nuevo_nombre2) {
		
		 $extension=explode(".",$_FILES[$nombre_imagen]['name']);
	 if(move_uploaded_file($_FILES[$nombre_imagen]['tmp_name'], $directorio.$_FILES[$nombre_imagen]['name'])) {	
	 
	 	$size = getimagesize ($directorio.$_FILES[$nombre_imagen]['name']);	
		 $height = $size[1];
		 $width = $size[0];
		
			$newwidth = 390;
			$newheight = round(($height*390)/$width);
							
		$src = imagecreatefromjpeg($directorio.$_FILES[$nombre_imagen]['name']);
		$im = imagecreatetruecolor($newwidth,$newheight);
		imagecopyresampled($im,$src,0,0,0,0,$newwidth,$newheight,$width,$height);
		imagetruecolortopalette($im, true, 256);
		imagejpeg($im, $directorio.$nuevo_nombre.".".$extension[1],90);		
		copy($im, $directorio2.$nuevo_nombre2.".".$extension[1]);
		imagedestroy($im);	 
	 
		chmod($directorio.$_FILES[$nombre_imagen]["name"], 0777); 
		unlink($directorio.$_FILES[$nombre_imagen]['name']);
			
		return $subida=TRUE;
	  } else {
	    return $subida=FALSE;		
	  }
			
	 }
La primera foto se guarda sin problema, para la segunda no. ¿Alguna idea?
  #2 (permalink)  
Antiguo 17/11/2009, 11:30
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: Subir imagen a 2 directorios diferentes

¿no la estas eliminando????: unlink($directorio.$_FILES[$nombre_imagen]['name']);
  #3 (permalink)  
Antiguo 17/11/2009, 11:34
 
Fecha de Ingreso: junio-2003
Mensajes: 778
Antigüedad: 20 años, 10 meses
Puntos: 1
Respuesta: Subir imagen a 2 directorios diferentes

Si la elimino, pero despues de intentar hacer la copia con :

copy($im, $directorio2.$nuevo_nombre2.".".$extension[1]);
  #4 (permalink)  
Antiguo 17/11/2009, 11:36
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: Subir imagen a 2 directorios diferentes

humm, ese directorio tiene permisos de escritura?
  #5 (permalink)  
Antiguo 17/11/2009, 12:27
 
Fecha de Ingreso: junio-2003
Mensajes: 778
Antigüedad: 20 años, 10 meses
Puntos: 1
Respuesta: Subir imagen a 2 directorios diferentes

Si. Si utilizo esa misma funcion indicando como primer directorio el que utilizo como segundo directorio (y que no funciona), guarda la imagen sin problemas...
  #6 (permalink)  
Antiguo 18/11/2009, 02:25
 
Fecha de Ingreso: junio-2003
Mensajes: 778
Antigüedad: 20 años, 10 meses
Puntos: 1
Respuesta: Subir imagen a 2 directorios diferentes

¿Alguna orientacion?
  #7 (permalink)  
Antiguo 18/11/2009, 02:29
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Subir imagen a 2 directorios diferentes

Cita:
Iniciado por Operadormail Ver Mensaje
[...] copy($im, $directorio2.$nuevo_nombre2.".".$extension[1]);
definitivamente eso esta mal...

en $im estas creando un #resource, entonces... $im no es una ruta ni siquiera...

necesitas usar una ruta valida, por favor...

o bien, si quieres copiar la imagen que has creado en la ruta especificada no uses copy(), usa la función de GD para ello... que en tu caso sería: imagejpeg()

justo como con la primer imagen, pero con la segunda...


suerte!!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #8 (permalink)  
Antiguo 18/11/2009, 10:44
 
Fecha de Ingreso: junio-2003
Mensajes: 778
Antigüedad: 20 años, 10 meses
Puntos: 1
Respuesta: Subir imagen a 2 directorios diferentes

lo he probado pero sigue sin poder copiarse o crearse la 2 imagen ¿Alguna otra alternativa?
  #9 (permalink)  
Antiguo 18/11/2009, 12:44
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Subir imagen a 2 directorios diferentes

Cita:
Iniciado por Operadormail Ver Mensaje
lo he probado pero sigue sin poder copiarse o crearse la 2 imagen ¿Alguna otra alternativa?
¿pues como lo estas haciendo??

porque, digo... me sorprende que no obtengas mensajes de error... eh??
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #10 (permalink)  
Antiguo 20/11/2009, 01:54
 
Fecha de Ingreso: junio-2003
Mensajes: 778
Antigüedad: 20 años, 10 meses
Puntos: 1
Respuesta: Subir imagen a 2 directorios diferentes

Pues ahora he intentado generar un bucle para repetir el proceso de crear la imagen, pero nada...


Código:
 function subir_imagen($nombre_imagen, $directorio1, $directorio2, $nuevo_nombre1, $nuevo_nombre2) {
		
		$extension=explode(".",$_FILES[$nombre_imagen]['name']);
		
		if(move_uploaded_file($_FILES[$nombre_imagen]['tmp_name'], $directorio.$_FILES[$nombre_imagen]['name'])) {	
		 
			$size = getimagesize ($directorio.$_FILES[$nombre_imagen]['name']);	
			 $height = $size[1];
			 $width = $size[0];
			
			$newwidth = 390;
			$newheight = round(($height*390)/$width);
			
			for($j=1;$j<3;$j++) {
				$src = imagecreatefromjpeg(${"directorio".$j}.$_FILES[$nombre_imagen]['name']);
				$im = imagecreatetruecolor($newwidth,$newheight);
				imagecopyresampled($im,$src,0,0,0,0,$newwidth,$newheight,$width,$height);
				imagetruecolortopalette($im, true, 256);
				imagejpeg($im, ${"directorio".$j}.${"nuevo_nombre".$j}.".".$extension[1],90);					
				imagedestroy($im);	 
			}
				 
			chmod($directorio.$_FILES[$nombre_imagen]["name"], 0777); 
			unlink($directorio.$_FILES[$nombre_imagen]['name']);
			
				
			return $subida=TRUE;
		  } else {
			return $subida=FALSE;		
		  }			
	 }
Ufff alguna idea??
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 06:26.