2017-09-11 3 views
1
function grab_image($url, $saveto){ 
     $url = $url; 
     $ch = curl_init ($url); 
     curl_setopt($ch, CURLOPT_HEADER, 0); 
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
     curl_setopt($ch, CURLOPT_BINARYTRANSFER,1); 
     $raw = curl_exec($ch); 
     curl_close ($ch); 
     if(file_exists($saveto)){ 
      unlink($saveto); 
     } 
     $fp = fopen($saveto, 'w'); 
     fwrite($fp, $raw); 
     fclose($fp); 
    } 
$link = 'https://images-na.ssl-images-amazon.com/images/I/415lKuJC%2B2L.jpg'; 
grab_image($link, '/tmp/415lKuJC%2B2L.jpg'); 

エラー画像を保存0バイトは%2Bあるエラーローカルファイル(0バイト)に保存、私はこのリンクは特殊文字を持っていると思うときに、ローカルまたは他のサーバへ

+0

あなたの '$のsaveto'パスが間違っています。これを '' /tmp/test.jpg ''のように変更してください – spinsch

答えて

0

てみ関数呼び出しでファイル名を追加し、次のように:

grab_image($link, "/tmp/new_file_name.jpg"); 
0

代替ソリューションは、元のファイル名を持つファイルをつかむために:

function grab_image($url, $savePath = getcwd()) 
{ 
    $path = $savePath.'/'.basename($url); 
    if (file_exists($path)) { 
     unlink(); 
    } 
    copy($url, $path); 
} 

$link = 'https://images-na.ssl-images-amazon.com/images/I/415lKuJC%2B2L.jpg'; 
grab_image($link); 
関連する問題