在asp.net mvc c#控制器中檢查文件類型和大小的最佳方法是什麼?asp.net mvc c#檢查文件類型和文件大小
0
A
回答
3
有什麼不對System.IO.FileInfo [1]
你所說的 '型',擴展或MIME類型的意思。擴展名顯然是在路徑和我認爲是在註冊表中的MIME類型映射。尺寸是長度
[1] http://msdn.microsoft.com/en-us/library/system.io.fileinfo.aspx
0
爲了計算以下代碼文件的大小將在控制器用來:
var fileSize = objFile.size; //size in kb
fileSize = fileSize/1048576; //size in mb
和用於檢查文件類型可以在Javascript
var _validFileExtensions = [".jpg", ".jpeg", ".bmp", ".gif", ".png"];
function Validate(oForm) {
var arrInputs = oForm.getElementsByTagName("input");
for (var i = 0; i < arrInputs.length; i++) {
var oInput = arrInputs[i];
if (oInput.type == "file") {
var sFileName = oInput.value;
if (sFileName.length > 0) {
var blnValid = false;
for (var j = 0; j < _validFileExtensions.length; j++) {
var sCurExtension = _validFileExtensions[j];
if (sFileName.substr(sFileName.length - sCurExtension.length, sCurExtension.length).toLowerCase() == sCurExtension.toLowerCase()) {
blnValid = true;
break;
}
}
if (!blnValid) {
alert("Sorry, " + sFileName + " is invalid, allowed extensions are: " + _validFileExtensions.join(", "));
return false;
}
}
}
}
return true;
}
做
0
你可以得到一個文件的擴展:
string extension = Path.GetExtension(upload.FileName);
這將包括領先的.
。
請注意,你不應該認爲擴展是正確的。
注
決定類型從byte[]
是不是很簡單。您必須假設使用MagicStrings
,使用unmanaged code
,或者進行調查性工作,如迭代地以各種類型消費,直到它不會失敗等等。如果這是一個內部應用程序,則可以減輕錯誤類型的文件上傳的後果並且惡意使用的威脅非常低,依靠擴展可能足夠合理,而與其餘部分的開銷相比,
我不知道可能是你可以使用System.Web.MimeMapping
類是BCL在.NET框架4.5的一部分使用MIME
:
string mimeType = MimeMapping.GetMimeMapping(fileName);
0
可以使用Myrmec識別文件類型,這個庫使用文件字節頭。這個庫在nuget「Myrmec」上可用,這是repo,myrmec也支持MIME類型,你可以試試它。該代碼將是這樣的:
// create a sniffer instance.
Sniffer sniffer = new Sniffer();
// populate with mata data.
sniffer.Populate(FileTypes.CommonFileTypes);
// get file head byte, may be 20 bytes enough.
byte[] fileHead = ReadFileHead();
// start match.
List<string> results = sniffer.Match(fileHead);
,並得到MIME類型:
List<string> result = sniffer.Match(head);
string mimeType = MimeTypes.GetMimeType(result.First());
相關問題
- 1. C:檢查文件大小
- 2. Asp.Net上傳前檢查文件大小
- 3. 如何在接受前檢查文件大小和類型?
- 4. 檢查圖片文件類型和大小
- 5. asp.net mvc jquery檢查文件上傳的大小
- 6. NSFileManager - 檢查文件大小?
- 7. 文件Mime類型檢查
- 8. asp.net文件大小
- 9. 檢查文件大小,而不打開文件在C + +?
- 10. C# - 寫入時檢查文件大小 - 更改中間文件
- 11. 檢查文件類型文件的jQuery
- 12. 使用asp.net記錄文件大小檢查和日誌寫入
- 13. PHP文件類型檢查
- 14. Automator檢查文件類型
- 15. 檢查文件類型?
- 16. 檢查文件夾類型
- 17. 文件輸入 - 防止選擇某些類型的文件和大小
- 18. ASP.NET MVC檢查下載文件爲空
- 19. 如何檢查上傳文件大小
- 20. asp.net mvc文件內容類型
- 21. 在C++中檢查文件的存在,大小和相似性
- 22. 在C#中按文件類型劃分的文件的總大小和數量
- 23. asp.net mvc大文件上傳
- 24. 文件類型asp.net
- 25. 在上傳之前檢查文件類型(.txt,jpg等)和大小
- 26. 使用Paperclip和Rails在上傳前檢查文件大小/類型
- 27. 來自文件類型,文件大小和文件時間的警告
- 28. 如何檢查文件大小是否超過最大文件大小批量
- 29. 檢查上傳文件的類型
- 30. C#文件大小限制
您必須指定,是否這個問題有什麼用ASP.NET MVC(如果是的話,是什麼?)或者是它只是一個.NET的問題? – Onkelborg 2010-10-22 12:36:53
@Onkelborg - 我最好的猜測是他說的是上傳文件 – 2010-10-22 12:38:44
也許,誰知道? =) – Onkelborg 2010-10-22 12:40:36