在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