2012-07-09 140 views
0

我可以用HttpPostedFileBase,但我想知道更多關於上傳文件像在MVC3(C#)上傳文件...MVC3上傳文件的詳細信息

  • 如何獲得

文件大小

  • 如何獲得

文件類型

  • 如何我可以用文件類型過濾文件上傳

請幫我

回答

3

文件大小

使用file.ContentLength其中文件是你HttpPostedFileBase變量。

文件類型

你可以使用文件名的擴展名,但顯然不是100%可靠。如果你想要一個防彈解決方案,你將不得不使用啓發式。例如查看上傳文件的內容以嘗試猜測其類型。例如,要測試已知的圖像格式,您可以使用following technique。我還寫了another post關於使用自定義驗證屬性對已知圖像格式進行驗證。

如何我可以用文件類型過濾文件上傳

HTML5支持指定內容類型:

<input type="file" name="file" accept="image/*" /> 

如果你的瀏覽器不支持HTML5,你將不得不使用一些其他諸如Flash之類的技術。您可以使用現有的插件,如UploadifyPlupload,它們通過測試客戶端瀏覽器的功能並逐步回退來提供此功能。

簡單地說,你絕對沒有辦法用IE7中的原生HTML和JavaScript來過濾文件輸入框的內容。

+0

你能解釋關於文件類型的啓發式嗎? – zxprince 2012-07-09 10:19:31

+0

根據您需要處理的文件類型,您將不得不採用各種技術。例如,對於某些圖像類型,您可以查看前幾個字節來識別類型。我也更新了我的答案,以指向您使用自定義驗證屬性對已知圖像格式進行驗證的另一個示例:http://stackoverflow.com/a/6388927/29407 – 2012-07-09 11:17:55