簡體   English   中英

如何從Web服務獲取文件並將其使用php保存到我們的磁盤上?

[英]how to get files from web services and save them on our disk using php?

我可以成功連接到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);

您的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內容的更多信息,請參見此處

只要文件可訪問,有很多方法可以做到。 給我們更多信息,我們可以建議合適的解決方案。

您需要知道公共URL才能下載文件。 換句話說,除服務器外,其他人如何訪問這些文件? 這是哪種Web服務? 您正在使用什么協議? 如果可以公開訪問,則可以使用file_get_contents保存文件。 否則, curl和一些身份驗證可能會滿足您的需求。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM