2010-05-25 41 views
0

我試圖強制用戶下載一個文件。對於我的腳本是:如何知道你迫使用戶下載的文件的文件類型?

$file = "file\this.zip";   
header("Cache-Control: public"); 
header("Content-Description: File Transfer"); 
header("Content-Disposition: attachment; filename=$file"); 
header("Content-Type: application/zip"); //This is what I need 
header("Content-Transfer-Encoding: binary"); 
readfile($file); 

我要上傳我無法名爲.zip的所有時間的文件,所以我想知道我會收到$文件中的圖像的內容類型。 如何做到這一點

回答

5

我總是把application/octet-stream(或somwething類似)的瀏覽器無法然後嘗試以任何方式顯示出來,它總是會強制用戶保存/運行,那麼文件類型爲通常由推廣推斷。

0

嘿,下面你的鏈接可以看到的Content-Type的,你需要的值:

Internet Media Type

只是有太多此處 列出拉吉斯拉夫

+0

...我認爲他的意思是編程... – 2010-05-25 08:01:07

2

對於圖像,最可靠的是getimagesize()。對於任何其他類型,Fileinfo函數是正確的。

其次我說什麼,但是:當強制下載時,octet-stream是防止在瀏覽器或各自的客戶端應用程序中打開的最佳選擇。

0

好吧,我自己做的。

我用

$type = filetype($file); //to know the type 
+0

這隻會返回所有文件的'文件'。不是你想要的。 – Chris 2010-05-25 08:08:52

+0

是的,我剛剛注意到了。建議使用application/octet-stream – Starx 2010-05-25 08:18:47

0

您需要發送的MIME類型那裏。你可以通過使用mime_content_type函數來獲得這個。還有Fileinfo擴展,它提供了獲取大量文件信息的方式,包括MIME類型。

相關問題