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