2011-06-10 10 views
56

Duplicar posible:
save image from php url using phpPHP - copia de la imagen a mi servidor directa de URL

Quiero tener código PHP para la siguiente.

Supongamos que tengo una URL de la imagen, por ejemplo, http://www.google.co.in/intl/en_com/images/srpr/logo1w.png

Si me quedo un script, esta imagen se copia y se puso en mi servidor dentro de la carpeta que tiene 777 derechos.

¿Es posible? Si sí, ¿puedes dar la dirección para lo mismo?

Gracias,

Ian

+0

... y http://stackoverflow.com/questions/909374/copy-image-from-remote-server-over-http – dotty

Respuesta

13
$url="http://www.google.co.in/intl/en_com/images/srpr/logo1w.png"; 
$contents=file_get_contents($url); 
$save_path="/path/to/the/dir/and/image.jpg"; 
file_put_contents($save_path,$contents); 

debe tener allow_url_fopen conjunto de on

+0

creo que es posible que desee para aclarar que el segundo uso de $ url no es lo mismo que el primero. –

+0

@Alex: actualicé mi respuesta –

+0

Mucho mejor. :) –

6

Este SO thread va a resolver su problema. Solución en resumen:

$url = 'http://www.google.co.in/intl/en_com/images/srpr/logo1w.png'; 
$img = '/my/folder/my_image.gif'; 
file_put_contents($img, file_get_contents($url)); 
116

dos maneras, si usted está utilizando PHP5

copy('http://www.google.co.in/intl/en_com/images/srpr/logo1w.png', '/tmp/file.jpeg'); 

Si no, utilice file_get_contents

//Get the file 
$content = file_get_contents("http://www.google.co.in/intl/en_com/images/srpr/logo1w.png"); 
//Store in the filesystem. 
$fp = fopen("/location/to/save/image.jpg", "w"); 
fwrite($fp, $content); 
fclose($fp); 

De this SO post

+0

muchas gracias ... – Roopchand

+1

¡Muchas gracias! 'copy()' hizo el truco – Erik

+0

en lugar de la url, ¿se puede hacer con una imagen de mapa de bits? –

23

De Copy images from url to server, delete all images after

function getimg($url) {   
    $headers[] = 'Accept: image/gif, image/x-bitmap, image/jpeg, image/pjpeg';    
    $headers[] = 'Connection: Keep-Alive';   
    $headers[] = 'Content-type: application/x-www-form-urlencoded;charset=UTF-8';   
    $user_agent = 'php';   
    $process = curl_init($url);   
    curl_setopt($process, CURLOPT_HTTPHEADER, $headers);   
    curl_setopt($process, CURLOPT_HEADER, 0);   
    curl_setopt($process, CURLOPT_USERAGENT, $user_agent); //check here   
    curl_setopt($process, CURLOPT_TIMEOUT, 30);   
    curl_setopt($process, CURLOPT_RETURNTRANSFER, 1);   
    curl_setopt($process, CURLOPT_FOLLOWLOCATION, 1);   
    $return = curl_exec($process);   
    curl_close($process);   
    return $return;  
} 

$imgurl = 'http://www.foodtest.ru/images/big_img/sausage_3.jpg'; 
$imagename= basename($imgurl); 
if(file_exists('./tmp/'.$imagename)){continue;} 
$image = getimg($imgurl); 
file_put_contents('tmp/'.$imagename,$image);  
+1

Gracias ... Esta solo funcionó correctamente ... Gracias Michael – Ian

4
$url = "http://www.example/images/image.gif"; 
$save_name = "image.gif"; 
$save_directory = "/var/www/example/downloads/"; 

if(is_writable($save_directory)) { 
    file_put_contents($save_directory . $save_name, file_get_contents($url)); 
} else { 
    exit("Failed to write to directory "{$save_directory}"); 
} 
Cuestiones relacionadas