2012-01-16 124 views
1

php文件上傳中支持的文件類型是什麼?PHP文件上傳中支持的文件類型是什麼?

Choose a file to upload: <input name="uploadedfile" type="file" /> 
    <br /> 
     Username:<input type="text" name="username"> 
    <br /> 
     Password:<input type="text" name="password"> 
    <br /> 
     FaxNumber:<input type="text" name="faxnumber"> 

    <input type="submit" value="Upload File" /> 

+0

你是什麼意思? – thescientist 2012-01-16 05:20:19

回答

0
by default: nearly anything you want (pdf,txt,exe,jpg) etc. 

你的工作,篩選出任何你想要使用。 可以過濾對$ _FILES數組(類型,大小)等內部任何

+2

差不多?所有的行爲。 – 2012-01-16 05:26:13

3

PHP不限制這樣的事。文件始終只是數據。當PHP「發佈」(或上傳)到您的服務器時,PHP會爲您提供這些數據。它沒有看它來確定它的數據是什麼,它實際上只是說「這個數據已經上傳了,這裏是臨時文件的路徑」。只要你的服務器可以處理接收整個文件,任何東西都可以被PHP接受。是否要限制可以上傳的類型完全取決於您。

0

PHP將支持文件上傳所有文件類型,但是你必須以驗證它可以破解你的網站,你也必須考慮文件大小,以避免長時間運行的腳本,一些文件擴展名。

1

沒有限制客戶端,所有文件/文件類型的支持。 PHP也沒有內置的限制,並支持所有文件。如果你想限制什麼可以在PHP上傳它看起來像下面的代碼片段,該文件限制爲GIF圖片:

if ($_FILES["file"]["type"] == "image/gif"){ 
    //do stuff here 
} 
else{ 
    //the file was wrong type handle error here 
} 

你可以找到MIME類型,「圖像/ GIF」,在列表上面的代碼在:
http://en.wikipedia.org/wiki/Internet_media_type#List_of_common_media_types

+2

不要使用'$ _FILES ['type']',它完全是任意的,未經驗證的數據。 – deceze 2012-01-16 05:47:55

+1

@deceze我同意需要許多其他步驟來確保服務器安全性,例如;使用.htaccess文件,上傳到服務器根目錄之外的目錄,防止覆蓋現有文件等。但是,它們似乎超出了問題的範圍。 $ _FILES ['type']不一定是有效的,但如果它被設置爲允許以外的內容,我們可以在這一點停止上傳。 – vdbuilder 2012-01-16 06:30:33

+0

圖像類型*很大程度上*被正確識別,但其他文件類型可能會或可能不會具有由客戶端設置的正確MIME類型。因此,你可能會得到錯誤的否定。此外,這個值很容易被欺騙,因此使用這個作爲唯一的文件類型檢查是不安全的(安全性取決於你對這些文件做什麼)。因此,如果您真的*對MIME類型感興趣,則無論如何您都必須執行自己的檢查。 – deceze 2012-01-16 06:55:49

0

PHP不處理上傳。上傳由http規範支持,並且應該由您的web服務(Apache,IIS等)處理。

無論如何,如果你希望只保存上傳的文件,然後將所有文件類型應該可以正常工作。如果你想處理上傳的文件作爲輸入,事情變得更加多毛。