0

我无法通过 PHP 下载远程文件。

我尝试过使用 cURL 和流式传输,但都不会产生错误。

这是我当前的流式传输代码。

$url = "http://commissiongeek.com/files/text.txt";
$path = "/files/cb.txt";     
file_put_contents($path, file_get_contents($url));

当我得到这个工作时,我会下载一个 zip 文件,但理论上这应该工作得很好......

该文件夹的权限设置为 777,如前所述,不会引发任何错误。什么可能导致这种情况?

4

3 回答 3

1

将其拆分为多个部分,以便您可以验证每个阶段是否正常工作:

$url = 'http://...';
$txt = file_get_contents($url);
var_dump($txt);
var_dump(file_put_contents('/files/cb.txt', $txt));

第一个转储应该向您显示 url 返回的任何文本。第二个转储应输出布尔值 true/false,具体取决于 file_put 是否失败。

于 2012-08-14T17:04:08.267 回答
0

看来您有一个要保存的绝对路径。我相信您希望将路径更改为“files/cb.txt”,并且无权访问 /files/

于 2012-08-14T17:06:49.030 回答
0

如果您将 allow_url_fopen 设置为 true:

$url = 'http://example.com/image.php';
$img = '/my/folder/flower.gif';
file_put_contents($img, file_get_contents($url));

否则使用 cURL:

$ch = curl_init('http://example.com/image.php');
$fp = fopen('/my/folder/flower.gif', 'wb');
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);
fclose($fp);
于 2012-08-14T17:09:30.560 回答