2012-08-14 70 views
0

我无法通过PHP下载远程文件。使用PHP下载文件时,什么都没有发生?

我试过使用cURL和流式传输,都没有产生错误。

这是我现在的流媒体代码。

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

我会下载一个压缩文件时,我得到这个工作,但在理论上这应该只是罚款...

该文件夹的权限设置为777,和以前一样说,不错误正在被抛出。 这可能是什么原因造成的?

+0

添加在脚本的开头:'的ini_set( 'display_errors设置',1); error_reporting(E_ALL);'你得到什么错误? – Jocelyn 2012-08-14 17:05:05

+0

检查apache的错误日志 – Julien 2012-08-14 17:05:53

+0

也许你的服务器已经被配置,你没有权限通过这些函数访问外部文件。 – MikkoP 2012-08-14 17:06:53

回答

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是否失败。

+0

谢谢,我现在就给这个镜头。 – user1146223 2012-08-14 17:04:54

+0

获取此响应...“NULL bool(false)”看起来由于某种原因没有获取文件。也许我的主机禁用了这些功能。 – user1146223 2012-08-14 17:06:04

+0

没关系,我犯了一个错误复制代码,现在响应不同了......“string(25)”这只是一个文本文件。“bool(false)”虽然file_put_contents仍然是false。 – user1146223 2012-08-14 17:08:42

0

看来你有你试图保存在一个绝对路径。我相信你想更改为“文件/ cb.txt”,而不是道路,不必/文件的任何接入/

0

如果你allow_url_fopen选项设置为true:

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

否则使用卷曲:

$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); 
+0

谢谢Blakdronzer。我试过cURL的结果相同。我现在正在与主持人谈论这个问题。 – user1146223 2012-08-14 17:17:31