【发布时间】:2011-05-16 06:14:21
【问题描述】:
如何在 php 中显示使用 file_get_contents 检索到的图像?
我是否需要修改标题并只是回显它或其他什么?
谢谢!
【问题讨论】:
标签: php http-headers file-get-contents
如何在 php 中显示使用 file_get_contents 检索到的图像?
我是否需要修改标题并只是回显它或其他什么?
谢谢!
【问题讨论】:
标签: php http-headers file-get-contents
我是否需要修改标题并只是回显它或其他什么?
没错。
之后发送header("content-type: image/your_image_type"); 和数据。
【讨论】:
你可以这样做,或者你可以使用readfile函数,它会为你输出:
header('Content-Type: image/x-png'); //or whatever
readfile('thefile.png');
die();
编辑:Derp,修正了明显的错字。
【讨论】:
您可以使用readfile 并输出您可以从getimagesize 获取的图像标题,如下所示:
$remoteImage = "http://www.example.com/gifs/logo.gif";
$imginfo = getimagesize($remoteImage);
header("Content-type: {$imginfo['mime']}");
readfile($remoteImage);
您应该在此处使用 readfile 的原因是它将文件直接输出到输出缓冲区,因为file_get_contents 会将文件读入内存,这在此内容中是不必要的,并且对于大文件可能很密集。
【讨论】:
你可以这样做:
<?php
$file = 'your_images.jpg';
header('Content-Type: image/jpeg');
header('Content-Length: ' . filesize($file));
echo file_get_contents($file);
?>
【讨论】:
$image = 'http://images.itracki.com/2011/06/favicon.png';
// Read image path, convert to base64 encoding
$imageData = base64_encode(file_get_contents($image));
// Format the image SRC: data:{mime};base64,{data};
$src = 'data: '.mime_content_type($image).';base64,'.$imageData;
// Echo out a sample image
echo '<img src="' . $src . '">';
【讨论】:
对@seengee 答案的小编辑: 为了工作,你需要在变量周围加上花括号,否则你会得到一个错误。
header("Content-type: {$imginfo['mime']}");
【讨论】: