2

Web サービスに正常に接続できました。ディスクに保存する必要があるファイルのリストが表示されます。それらをダウンロードしてディスクに保存するにはどうすればよいでしょうか?

簡単な応答は次のとおりです(応答は短縮されます)

 <files>
   <file>
       <name>1.jpeg</name>
       <address>c:\photos\1.jpeg</address>
       <url>www.xxx.com\photos\1.jpeg</url>
   </file>
   <file>
       <name>my.pdf</name>
       <address>c:\pdfs\my.pdf</address>
       <url>www.xxx.com\pdfs\my.pdf</url>
  </file>
</files>

以下を見つけましたが、$output を保存する方法がわかりません

 function url_get_contents ($Url) {
     if (!function_exists('curl_init')){ 
          die('CURL is not installed!');
     }
     $ch = curl_init();
     curl_setopt($ch, CURLOPT_URL, $Url);
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
     $output = curl_exec($ch);
     curl_close($ch);
     return $output;
 }

私は以下を使用しましたが、何かが間違っています。ファイルを作成しますが、空です

$fp = fopen("lib\1",'x');
fwrite($f, $output);
fclose($fp);
4

2 に答える 2

2

Webサービスによって提供されるファイルは、認証なしで公開されていますか?もしそうなら、あなたがそれらの完全な場所を知っていることを提供して、ファイルを取得する方法の山があります...

PHPのfile_get_contentsを使用して、ファイルのコンテンツを取得し、どこかに保存することができます...

$page = file_get_contents('NETWORK_ADDRESS\pdfs\my.pdf');

または、CURLを使用して、この質問への回答を確認することもできます。CURLとPHPを使用してファイルをダウンロードする方法を示す完全なコード例があります。

または、ファイルがPHPインストールに対してローカル(ありそうもない)である場合は、PHPのコピー機能を使用してファイルを目的の場所に移動できます。ここでコピーについて読んでください。

ファイルを取得したら、上記の例のように$ page変数で、file_put_contentsを使用してそのファイルの内容を保存すると仮定します...

$file = 'filename.ext';
file_put_contents($file, $page);

file_putの内容の詳細については、こちらをご覧ください。

ファイルにアクセスできる場合は、それを行う方法が山ほどあります。さらに情報を提供していただければ、適切な解決策を提案できます。

于 2013-01-04T04:06:06.873 に答える
2

ファイルをダウンロードするには、公開 URL を知っている必要があります。言い換えれば、サーバー以外の誰かがこれらのファイルにどのようにアクセスするのでしょうか? これはどのような Web サービスですか? どのプロトコルを使用していますか? 公開されている場合は、file_get_contentsを使用してファイルを保存できます。それ以外の場合は、curlと一部の認証がおそらくニーズに合っています。

于 2013-01-04T04:11:29.260 に答える