2010-04-21 150 views
0

我正在使用ASP.NEt MVC。我想上傳我使用html輸入文件上傳控件的.zip文件。我只想要上傳.zip文件。有沒有什麼方法或屬性來指定和實現呢?如何上傳特定文件類型?

感謝, 卡皮爾

回答

4

有一個ACCEPT屬性上,理論上,可用於這個HTML文件控制:

<input type="file" name="ZipFile" accept="application/x-zip" /> 

它接受一個逗號分隔的可接受的內容類型的列表。但是,實際上大多數瀏覽器並不強制執行此操作,因此無法依賴它。它在Opera中工作,但在IE或FireFox中似乎不起作用。也有JavaScript methods to check,但這些只是檢查文件擴展名,因此不可靠。

更可靠的方法是檢查上傳文件的實際內容類型。你可以通過HttpPostedFileBase.ContentType Property來做到這一點。即便如此,有些瀏覽器可能無法正確發送,因此您最終可能會檢查文件擴展名和內容類型。

0

使用標準的HTML輸入控制,沒有辦法。您可以使用更可定製的Flash上​​傳控件。 SWFUpload就是一個例子。

在我看來,在所有情況下,您需要對上傳的文件擴展名和內容進行服務器端驗證。

+0

SWFUpload可以在MVC視圖中使用嗎? – 2010-04-21 12:00:32

+0

是的,當然,您可以像在HTML頁面中一樣使用它。 – 2010-04-21 13:32:06

0

永遠不要相信客戶!

HTML或Javascript驗證是沒有價值的。你可以解決這個問題!所以驗證服務器上的文件和文件類型。例如使用PHP,JSP等。