在PHP中下载文件的最简单方法是什么?

时间:2010-04-08 23:27:21

标签: php curl file-get-contents file-access built-in

我需要将图像从某个URL下载到我的服务器。但是,我的服务器配置不允许我这样做:

getimagesize( $file );

因为,它会产生错误:

Warning: getimagesize() [function.getimagesize]: URL file-access is disabled in the server configuration in somefile.php  on line 10

那么,我可以使用另一种不需要外部库的方法吗?

好的,我用OIS的解决方案解决了这个问题:

$filename = '/tmp/'.md5($file);
$ch = curl_init($file);
$fp = fopen($filename, "w");

curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);

curl_exec($ch);
curl_close($ch);
fclose($fp);

$ext = getimagesize( $filename );

4 个答案:

答案 0 :(得分:4)

您可以尝试curl

答案 1 :(得分:0)

除非您修改服务器配置

,否则无法进行此操作

答案 2 :(得分:-1)

如果在服务器上禁用了对URL的文件访问权限,则无法从外部URL加载任何内容。这就是配置的目的。

在未禁用的服务器上,file_get_contents($ url)是获取大多数文件的最简单方法。

答案 3 :(得分:-1)

使用以下命令将文件下载到$imgdata。然后,您可以将其保存到文件并获取其图像大小。您可以通过一些工作来删除文件保存步骤,以使其更快。

$imgdata = get_file_contents($url);
file_put_contents($filename, $imgdata);
getimagesize( $filename );