将 php 脚本的图像输出保存为文件
Posted
技术标签:
【中文标题】将 php 脚本的图像输出保存为文件【英文标题】:Save image output from php script as file 【发布时间】:2016-10-14 12:43:39 【问题描述】:我尝试让一个 php 脚本将生成的图像输出为 .jpg 文件:
$url = 'http://www.photopost.com/photopost/showfull.php?photo=7541';
file_put_contents('image.jpg',file_get_contents($url));
$page = file_get_contents($url);
echo $page;
回显在浏览器中显示正确的图像。 但 image.jpg 没有保存。
我怎样才能做到这一点?
【问题讨论】:
我认为你需要设置标题。header('Content-Type: image/jpeg');
。关注这个php.net/manual/en/function.imagejpeg.php url
ini 设置检查 echo ini_get('allow_url_fopen');
$url = "domain.com/showphoto.php?photo=10" 在 url 中找不到图片
$url = 'photopost.com/photopost/showfull.php?photo=7541';
ini_get('allow_url_fopen');显示:1
【参考方案1】:
您需要输出具有正确 MIME 类型的 Content-Type 标头,以便浏览器能够了解服务器正在发送的文件类型。
header('Content-Type: image/jpeg');
有关有效 MIME 类型的列表,请参阅 http://php.net/manual/en/function.header.php 和 https://www.sitepoint.com/web-foundations/mime-types-complete-list/。
【讨论】:
我试过了:代码 您是否指定了保存图片的路径? (即file_put_contents('/tmp/image.jpg', $data);
)Web 服务器可能无法写入默认路径。 Web 服务器/PHP 进程可以写入该路径吗?您需要提供错误信息以便我们提供帮助。【参考方案2】:
使用 curl 从 url 获取图像:-
$profile_Image = 'http://www.photopost.com/photopost/showfull.php?photo=7541'; //image url
$userImage = 'myimg.jpg'; // renaming image
$path = ''; // your saving path
$ch = curl_init($profile_Image);
$fp = fopen($path . $userImage, 'wb');
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
$result = curl_exec($ch);
curl_close($ch);
fclose($fp);
使用 file_get_contents 从 url 获取图片:-
$profile_Image = 'http://www.photopost.com/photopost/showfull.php?photo=7541'; //image url
$userImage = 'myimg.jpg'; // renaming image
$path = ''; // your saving path
$thumb_image = file_get_contents($profile_Image);
if ($http_response_header != NULL)
$thumb_file = $path . $userImage;
file_put_contents($thumb_file, $thumb_image);
【讨论】:
您好 Jinandra,谢谢您的帮助。此代码下载一个文件,我的电脑上的机器人无法识别为有效的 jpg!【参考方案3】:更改您的网址
http://www.photopost.com/photopost/showfull.php?photo=7541 //html document
到
http://www.photopost.com/photopost/watermark.php?file=7541 //downloadable url
然后使用其他答案中的代码或使用imagecreatefromjpeg
http://php.net/manual/en/function.imagecreatefromjpeg.php
【讨论】:
谢谢戴夫,这行得通! (由于声誉低,我的投票尚不可见)以上是关于将 php 脚本的图像输出保存为文件的主要内容,如果未能解决你的问题,请参考以下文章