回答
只要提供一個鏈接到該文件,瀏覽器將完成其餘的。如果這個文件存儲在你的服務器上,你可能正在尋找一個腳本,將它暴露給外部世界。這個腳本應該設置正確的MIME類型,然後readfile
應該做到這一點。
<?php
header('Content-type: image/gif');
readfile('/path/to.your/file.gif');
exit();
如果該文件是.pdf,該怎麼辦?是否有一個通用的解決方案? – user198729 2009-12-26 13:31:48
搜索MIME類型。 – deerchao 2009-12-26 13:49:01
如果你想獲得的MIME類型的文件時,你至少有兩種選擇,在PHP中:
第一種是使用(廢棄)功能mime_content_type
:
返回MIME 格式的內容類型,如
text/plain
或application/octet-stream
。
第二是使用新的擴展Fileinfo(可作爲PECL擴展爲PHP < 5.3,和集成在PHP> = 5.3);該finfo_file
功能似乎是你需要的一個:
返回的文件名參數的 內容的文字說明,或 FALSE如果發生錯誤。
和給定的例子(引用):
$finfo = finfo_open(FILEINFO_MIME_TYPE); // return mime type ala mimetype extension
foreach (glob("*") as $filename) {
echo finfo_file($finfo, $filename) . "\n";
}
finfo_close($finfo);
給出了這樣的輸出:
text/html
image/gif
application/vnd.ms-excel
哪種對應的到你需要使用的是什麼Content-type
您的應用程序可能需要發送的HTTP標頭;-)
如果有很多併發用戶,你可能會考慮以某種方式緩存結果,因爲MIME魔法模式測試不是「最便宜」的功能;-) – VolkerK 2009-12-26 14:40:19
finfo_open無法加載魔法數據庫,php 2.5 – user198729 2009-12-26 15:44:22
嗯,有一些你必須把它放在正確的位置(我嘗試了幾次,這不是那麼容易設置,但不是**也很難)。有一些關於http://www.php.net/manual/en/function.finfo-open.php的信息可能會引導你更進一步。 – 2009-12-26 15:53:48
- 1. Php不返回正確的MIME類型
- 2. Php include()正確的MIME類型
- 3. PHP報告不正確的MIME類型
- 4. JSON的正確MIME類型?
- 5. 什麼是vcalendar的正確MIME類型
- 6. css.map文件的正確MIME類型
- 7. HTML5視頻 - 不正確的MIME類型
- 8. JSON的正確MIME類型是什麼?
- 9. 如何實現在F5這些MIME類型 - 的iRules
- 10. 如何確定與PHP中MIME類型關聯的擴展?
- 11. 在MySQL中正確實現超類型子類型
- 12. 如何確定適當的MIME類型
- 13. 如何在Play中實現用戶特定類型的一般行爲?
- 14. 不支持視頻格式或MIME類型。 IIS確實具有正確的MIME類型。
- 15. 如何分類MIME類型(PHP)
- 16. (PHP)如何正確地實現的crypt()
- 17. 正確的MIME類型返回JSON實體
- 18. 檢查MIME類型是否正確?
- 19. Mime類型檢測完成正確
- 20. Jekyll設置css MIME類型不正確
- 21. PHP - finfo_file返回不正確的MIME類型
- 22. 使用PHP郵件 - 設置正確的MIME類型
- 23. 使用PHP獲取正確的MIME類型
- 24. PHP imagejpeg MIME類型
- 25. MIME實體的通用MIME類型?
- 26. 如何使IIS以正確的MIME類型提供樣式表?
- 27. 如何實現自定義MIME類型的剪貼板操作?
- 28. PHP:如何確定電子郵件附件的MIME類型?
- 29. Java:我的一般樹遍歷實現有什麼不正確?
- 30. 如何正確地爲我的數據類型實現FromJSON?
您可以定義「它失敗「?比如,你是否收到錯誤信息?文件是否存在(並在當前目錄中)? – 2009-12-26 13:28:29
它給了我很多雜亂的字符,而不是一個圖像。 – user198729 2009-12-26 13:30:16