如何从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的Copy函数将文件移动到您想要的位置。在这里阅读有关复制的内容。

一旦你有了这个文件,让我们假设在$page变量中,使用file_put_contents来保存这个文件的内容…

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

关于file_put内容的更多信息请点击此处。

有很多方法可以做到这一点,只要文件是可访问的。给我们一些信息,我们可以提出一个合适的解决方案。

您需要知道公共url以便下载文件。换句话说,除了服务器,其他人如何访问这些文件?这是一种什么样的web服务?你用的是什么协议?如果它是可公开访问的,则可以使用file_get_contents保存该文件。否则,curl和一些身份验证可能会满足您的需求。