(1)
$file = $_GET['file'];
echo '<img src="'.$file.'" />';
(2)
$file = $_GET['file'];
$imginfo = getimagesize($file);
header('Content-type: '.$imginfo['mime']);
echo file_get_contents($file);`
从这两个代码中,我的图像可以很好地显示在浏览器中。但它们的区别是什么?我更喜欢哪种方法?
答案 0 :(得分:2)
您发布的第一个示例只是将图像文件“包含”到DOM中。 它基本上会输出类似的东西:
<img src="path/to/image.png" />
虽然第二个选项实际上将Content-Type
设置为图像的mime
。例如,如果它是png
,则运行该脚本的页面实际上将作为整个图像提供。
如果是png图片,则会返回image/png
的内容类型。
答案 1 :(得分:0)
关键区别是输出:
示例1
来自路径的引用,而示例2
输出二进制文件并将其标记为图像(因此HTTP客户端可以正确解释响应)。
到目前为止......示例1
是首选,因为它不必将文件内容存储在内存中。
答案 2 :(得分:0)
您发布的第一个示例只是: 输出:
<img src="image.png" />
第二个选项实际上设置了Content-Type:
它会返回image/png
或image/jpg
的内容类型。
我更喜欢去第二个例子。