【发布时间】:2012-05-29 10:24:39
【问题描述】:
使用 file_put_contents 上传图片会生成 0 字节文件。
这是我使用的代码。我提取 facebook 图片 url 并将其放入 web 服务器。
$fb_image_url = 'https://example.com/229282.jpg'
$filename = substr($fb_image_url, strrpos($fb_image_url, '/') + 1);
file_put_contents('upload/user_pic/original/'.$filename, file_get_contents($fb_image_url));
我这样做后,服务器成功接收文件名,但它是0字节。
我检查了 php.ini,allow_url_fopen 为 ON。
上传文件夹权限也可以。
【问题讨论】:
-
你检查过
file_get_contents的输出吗? -
尝试将
file_get_contents放入单独的行 - 将文件内容接收到变量中。然后您可以检查从服务器收到的内容。您需要隔离问题:加载或保存。 -
@Aleks G 我照你说的做了,但并没有改变任何东西。似乎它至少接收到 0 字节数据。
-
好的,那么至少您知道问题出在加载数据上。接下来尝试从 不 具有活动 facebook 会话(即退出 facebook)的浏览器打开相关 URL。在允许您下载图像之前,facebook 可能需要一个活动会话。如果是这种情况,请查看 php.net/manual/en/function.file-get-contents.php 上的“示例 #4 使用流上下文”示例
标签: php