我可以成功连接到一个web服务,它提供了一个文件列表,我需要将它们保存在我的磁盘上,我想知道我如何下载并保存它们在我的磁盘上?
简单答复如下(答复缩短)
<files>
<file>
<name>1.jpeg</name>
<address>c:photos1.jpeg</address>
<url>www.xxx.comphotos1.jpeg</url>
</file>
<file>
<name>my.pdf</name>
<address>c:pdfsmy.pdf</address>
<url>www.xxx.compdfsmy.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("lib1",'x');
fwrite($f, $output);
fclose($fp);
您的web服务提供的文件是否公开可用且无需身份验证?如果是这样,有很多方法可以获得这些文件,只要您知道它们的完整位置…
你可以使用PHP的file_get_contents获取文件的内容,然后将其保存在某个地方…
$page = file_get_contents('NETWORK_ADDRESSpdfsmy.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和一些身份验证可能会满足您的需求。