PHP下载文件到服务器

PHP下载文件到服务器,php,curl,fopen,fclose,Php,Curl,Fopen,Fclose,我正在尝试使用curl从php下载图像,但是它没有将图像保存到服务器,而是将随机字符输出到web浏览器屏幕,下面是代码 $final['IMAGE'] = 'http://www.google.com/images/srpr/logo3w.png'; $imagename = trim(basename($final['IMAGE'])); $url = $final['IMAGE']; $path = '/media/import/'; $path .= $imagename; $fp

我正在尝试使用curl从php下载图像,但是它没有将图像保存到服务器,而是将随机字符输出到web浏览器屏幕,下面是代码

$final['IMAGE'] = 'http://www.google.com/images/srpr/logo3w.png';

$imagename = trim(basename($final['IMAGE']));

$url  = $final['IMAGE'];
$path = '/media/import/';
$path .= $imagename;

$fp = fopen($path, 'w');

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_FILE, $fp);

$data = curl_exec($ch);

curl_close($ch);
fclose($fp);
curl_exec($ch)将直接将输出打印到屏幕上。使用
CURLOPT\u RETURNTRANSFER
选项时,您可以停止他的行为:

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
有关更多信息,请参阅PHP手册“”

编辑

此小脚本将文件下载到可写目录:

// file handler
$file = fopen(dirname(__FILE__) . '/test.png', 'w');
// cURL
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,'somethinsomething.com/something.png');
// set cURL options
curl_setopt($ch, CURLOPT_FAILONERROR, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// set file handler option
curl_setopt($ch, CURLOPT_FILE, $file);
// execute cURL
curl_exec($ch);
// close cURL
curl_close($ch);
// close file
fclose($file);
这次是
CURLOPT_文件
-选项起作用。更多信息可以在与以前相同的链接上找到。

curl\u exec($ch)将直接将输出打印到屏幕上。使用
CURLOPT\u RETURNTRANSFER
选项时,您可以停止他的行为:

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
有关更多信息,请参阅PHP手册“”

编辑

此小脚本将文件下载到可写目录:

// file handler
$file = fopen(dirname(__FILE__) . '/test.png', 'w');
// cURL
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,'somethinsomething.com/something.png');
// set cURL options
curl_setopt($ch, CURLOPT_FAILONERROR, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// set file handler option
curl_setopt($ch, CURLOPT_FILE, $file);
// execute cURL
curl_exec($ch);
// close cURL
curl_close($ch);
// close file
fclose($file);

这次是
CURLOPT_文件
-选项起作用。更多信息可以在与以前相同的链接上找到。

如果您确定它们是.png,您可以使用imagecreatefromstring()和imagepng():


如果确定它们将是.png,则可以使用imagecreatefromstring()和imagepng():

您只需使用copy():

您只需使用copy():


将其更改为use,curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);仍然没有将图像下载到/media/import/directory谢谢这是一个很好的答案,您可以将任何内容下载到您的服务器上,下载大文件需要几秒钟才能使用,curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);仍然没有将图像下载到/media/import/directory谢谢这是一个很好的答案,您可以将任何内容下载到您的服务器,并且下载大文件需要几秒钟的时间运行仍然没有将文件复制到我的服务器上的/media/import/也不会出现任何错误运行仍然没有将文件复制到我的服务器上的,/media/import/也不会出现任何错误