Foros del Web » Programando para Internet » PHP »

Upload mediante URL

Estas en el tema de Upload mediante URL en el foro de PHP en Foros del Web. Hola, estoy creando una sección para subir imágenes mediante URL, lo que quería saber era si es seguro copiarlo directamente el archivo a el servidor ...
  #1 (permalink)  
Antiguo 03/03/2008, 13:41
Avatar de hgp147  
Fecha de Ingreso: diciembre-2006
Ubicación: Buenos Aires, Argentina
Mensajes: 980
Antigüedad: 17 años, 3 meses
Puntos: 36
Pregunta Upload mediante URL

Hola, estoy creando una sección para subir imágenes mediante URL, lo que quería saber era si es seguro copiarlo directamente el archivo a el servidor (gratuito), ya que no puedo validar si el archivo es una imagen ya que getimagesize() lo tengo desabilitado para urls distintas de la mía. Entonces lo que hago es copiar el archivo, y ya una vez en mi servidor utilizo getimagesize() para comprobar si es una imagen, de lo contrario elimino el archivo. Hay otra forma de validar que el archivo sea una imagen antes de copiarlo al servidor? Es seguro copiar el archivo sin saber que es?

Gracias
  #2 (permalink)  
Antiguo 03/03/2008, 13:51
Avatar de quinqui  
Fecha de Ingreso: agosto-2004
Ubicación: Chile!
Mensajes: 776
Antigüedad: 19 años, 8 meses
Puntos: 56
Re: Upload mediante URL

Cuando subes las imágenes al servidor, cómo lo haces? Mediante FTP? ¿O tienes un form que sube las imágenes mediante PHP?
Si es mediante esta última opción, puedes saber el tipo de archivo :

Código PHP:
// Recibidas desde formulario
$archivo_nombre $_FILES["archivo"]["tmp_name"];
$archivo_tipo $_FILES["archivo"]["type"];   // <---Este es el parametro que necesitarías
$archivo_tamanyo $_FILES["archivo"]["size"];

// Verificas que el tipo sea Imagen
if ($archivo_tipo == "image/gif" || $archivo_tipo == "image/jpg" || $archivo_tipo == "image/png" || $archivo_tipo == "image/bmp")
{  
  
// Formato OK

No sé si eso será lo que necesitas, aunque tal vez ya lo conocías y te referías a otra solución...
__________________
pipus.... vieeeeeji plomius!!!
*quinqui site*
  #3 (permalink)  
Antiguo 03/03/2008, 13:59
Avatar de hgp147  
Fecha de Ingreso: diciembre-2006
Ubicación: Buenos Aires, Argentina
Mensajes: 980
Antigüedad: 17 años, 3 meses
Puntos: 36
Re: Upload mediante URL

Hola quinqui, las imágenes las copio desde un servidor cualquiera al servidor donde tengo alojado la web mediante cURL.
Uso este código: http://www.forosdelweb.com/f18/allow...8/#post2278555
  #4 (permalink)  
Antiguo 03/03/2008, 14:08
Avatar de quinqui  
Fecha de Ingreso: agosto-2004
Ubicación: Chile!
Mensajes: 776
Antigüedad: 19 años, 8 meses
Puntos: 56
Re: Upload mediante URL

Ahhh..... yo nunca he usado ese método, se ve super útil :P

Tendrías que investigar si en el momento en que abres o tomas el archivo a copiar desde la locación remota, puedes ver sus propiedades, entre ellas, su tipo MIME, como cuando hacemos el Upload común.
__________________
pipus.... vieeeeeji plomius!!!
*quinqui site*
  #5 (permalink)  
Antiguo 03/03/2008, 14:41
Avatar de hgp147  
Fecha de Ingreso: diciembre-2006
Ubicación: Buenos Aires, Argentina
Mensajes: 980
Antigüedad: 17 años, 3 meses
Puntos: 36
Re: Upload mediante URL

Gracias quinqui, estube googleando pero no encontre nada que sirva. Alguien sabe como hacerlo?

  #6 (permalink)  
Antiguo 04/03/2008, 10:49
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Re: Upload mediante URL

Cuando usas cURL puedes guardar los encabezados y comparar el content-type para que verifiques si es o no una imagen.

Saludos.
  #7 (permalink)  
Antiguo 04/03/2008, 13:17
Avatar de hgp147  
Fecha de Ingreso: diciembre-2006
Ubicación: Buenos Aires, Argentina
Mensajes: 980
Antigüedad: 17 años, 3 meses
Puntos: 36
Re: Upload mediante URL

Hola GatorV gracias. Podrias decirme como hacer ya que no conozco casi nada de cURL.
  #8 (permalink)  
Antiguo 05/03/2008, 08:16
Avatar de hgp147  
Fecha de Ingreso: diciembre-2006
Ubicación: Buenos Aires, Argentina
Mensajes: 980
Antigüedad: 17 años, 3 meses
Puntos: 36
Re: Upload mediante URL

SOLUCIONADO:

Código PHP:
<?

$the_image_url 
"http://www.mia-software.com/img/partners/sodifrance/logo_php.png";

$ch curl_init(); // create cURL handle (ch)

// set some cURL options

curl_setopt($chCURLOPT_URL$the_image_url);

curl_setopt($chCURLOPT_HEADER,         1);

curl_setopt($chCURLOPT_FOLLOWLOCATION0);

curl_setopt($chCURLOPT_RETURNTRANSFER1);

// execute

curl_exec($ch);

$content_type curl_getinfo$chCURLINFO_CONTENT_TYPE );

curl_close($ch);

echo 
$content_type;

if (
$content_type == 'image/png' || $content_type == 'image/gif' || $content_type == 'image/jpeg') {

$archivo_destino="mia.gif";

function 
recibe_archivo ($archivo_origen,$archivo_destino){
    
$mi_curl curl_init ($archivo_origen); 
    
$fs_archivo fopen ($archivo_destino"w"); 
    
curl_setopt ($mi_curlCURLOPT_FILE$fs_archivo); 
    
curl_setopt ($mi_curlCURLOPT_HEADER0); 
    
curl_exec ($mi_curl); 
    
curl_close ($mi_curl); 
    
fclose ($fs_archivo); 
}
recibe_archivo($the_image_url,$archivo_destino); 
            
echo 
"ok";

}else{

echo 
"Extensión no válida";

}
        
?>
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 03:15.