0

PHP リンクから画像をダウンロードしようとしました。ブラウザでリンクを試すと、画像がダウンロードされます。curl を有効にし、「allow_url_fopen」を true に設定しました。ここで説明した方法を使用しましたPHP URLからの画像の保存ですが、機能しませんでした。「file_get_contents」も試しましたが、うまくいきませんでした。いくつかの変更を加えましたが、それでも機能しません。これがコードです

$URL_path='http://…/index.php?r=Img/displaySavedImage&id=68';
$ch = curl_init ($URL_path);
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);
$fp = fopen($path_tosave.'temp_ticket.jpg','wb');
fwrite($fp, $raw);
fclose($fp);

それを機能させるためのアイデアはありますか?助けてください。ありがとう

4

4 に答える 4

2
<?php
    if( ini_get('allow_url_fopen') ) {
      //set the index url
      $source  = file_get_contents('http://…/index.php?r=Img/displaySavedImage&id=68');
      $filestr = "temp_ticket.jpg";
      $fp = fopen($filestr, 'wb');
      if ($fp !== false) {
        fwrite($fp, $source);
        fclose($fp);
      }
      else {
        // File could not be opened for writing
      }
    }
    else {
      // allow_url_fopen is disabled
      // See here for more information:
      // http://php.net/manual/en/filesystem.configuration.php#ini.allow-url-fopen
    }
?>

これは、拡張子なしで画像を保存するために使用したものです(サーバーによって生成された動的画像)。それがうまくいくことを願っています。ファイル パスの場所が完全修飾されていて、イメージを指していることを確認してください。@ComFreek が指摘したように、データをファイルに書き込むために連続しfile_put_contentsて呼び出すのと同等の which を使用できます。file_put_contentsfopen(), fwrite() and fclose()

于 2013-01-03T16:31:45.950 に答える
0

最初の行に閉じ引用符とセミコロンがありません:

$URL_path='http://…/index.php?r=Img/displaySavedImage&id=68';

また、あなたのURLは入っていますが、質問のコードに基づいて未定義のもので$URL_path初期化cURLします。$path_img

于 2013-01-03T16:28:31.317 に答える