0
考虑以下(简化)的PHP脚本: PHP脚本下载适用时与IMG SRC直接,但不叫
<?php
header("Content-Length: ".filesize("data/file.svg"));
header("Content-Type: image/svg");
$file = fopen("data/file.svg","rb");
while(!feof($file))
{
print(fread($file, 1024*8));
ob_flush();
flush();
}
?>
正确的Firefox下载文件“file.svg”当PHP脚本的网址是直接调用。但是,当它通过HTML src标记使用时,如下所示:
<img src="https://example.org/script.php">
然后Firefox报告“无法加载图像”。开发人员工具中的“网络”选项卡显示它“已转移”2.92 KB,但它表示“大小”为0 KB。 为什么它在第一种情况下工作,但不在第二种情况下?
我会使用readfile(“data/file.svg”);'在标题后面,应该是你需要的所有东西 – 2016-08-25 03:30:21
SVG的MIME类型实际上是'image/svg + xml'而不是'image/svg' 。 – Sherif
@Dagon正如我所说:这是一个简化的脚本。在现实世界中,我禁用缓存并支持更大的文件和范围。 readfile会使用更多的内存(?),我无法实现HTTP_RANGE。 – Scindix