【发布时间】:2013-02-14 21:35:15
【问题描述】:
我正在使用带有以下代码的函数将图像从 url 复制到我的 web 目录,但我不知道为什么有些图像没有 100% 复制。
这是我的网络目录中错误图像的副本http://www.aligatoor.pl/uploads/deals/2632b3802e8ed7abe83788dab605bbf7.jpg
这里是原图http://infobuzer.pl/img/r4d3k/voucher/50e35a84c9038.jpg
function upload_file($file_path)
{
$deal_img_data=file_get_contents($file_path);
$file_name=md5($file_path).".jpg";
if(!file_exists($file_name))
{
$file=fopen($file_name,"w+");
fwrite($file,$deal_img_data);
}
}
我也尝试过使用 CURL,但它仍然无法正确复制一些图像。
CURL 代码:
$ch = curl_init ($url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_BINARYTRANSFER,1);
$raw=curl_exec($ch);
curl_close ($ch);
$saveto=md5($url).".jpg";
if(file_exists($saveto)){
unlink($saveto);
}
$fp = fopen($saveto,'x');
fwrite($fp, $raw);
fclose($fp);
【问题讨论】:
-
而不仅仅是 file_put_contents 而不是 fopen/fwrite?
-
您可能只需要指定“wb+”作为标志。 b 表示二进制模式。这可能是原因。它可能认为它是一个文本文件。
-
"wb+" 和 file_put_contents 不起作用
-
我也试过 curl 还是一样的问题。
标签: php file-upload file-get-contents