在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. Asp.Net上傳前檢查文件大小
- 2. 檢查圖片文件類型和大小
- 3. asp.net mvc jquery檢查文件上傳的大小
- 4. NSFileManager - 檢查文件大小?
- 5. 檢查文件類型文件的jQuery
- 6. asp.net文件大小
- 7. PHP文件類型檢查
- 8. 文件輸入 - 防止選擇某些類型的文件和大小
- 9. 如何檢查上傳文件大小
- 10. ASP.NET MVC檢查下載文件爲空
- 11. 在C++中檢查文件的存在,大小和相似性
- 12. asp.net mvc文件內容類型
- 13. asp.net mvc大文件上傳
- 14. 在上傳之前檢查文件類型(.txt,jpg等)和大小
- 15. 使用Paperclip和Rails在上傳前檢查文件大小/類型
- 16. 文件類型asp.net
- 17. 如何檢查文件大小是否超過最大文件大小批量
- 18. 如何在C++中檢查最大文件大小上傳?
- 19. C#文件大小限制
- 20. PHP - 檢查文件上傳大小
- 21. 如何檢查文件大小?
- 22. 要檢查文件大小在Hadoop中
- 23. Java文件上傳大小檢查
- 24. 如何檢查文件的大小?
- 25. 檢查一個JSON文件的大小
- 26. 檢查的外部文件大小,PHP
- 27. 檢查文件的大小總是
- 28. jspdf檢查pdf文件大小
- 29. 檢查文件大小的變化
- 30. jquery文件上傳大小檢查
您必須指定,是否這個問題有什麼用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