MVC文件上传文件限制

时间:2023-03-08 18:19:00

最近想实现MVC中文件上传限制,总觉得有便利的方法,找了半天就找到加属性accept

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

accept表示可以上传文件类型,image表示图片,*表示所有支持的格式。

accept可写的类型如下(两种以上的用逗号隔开):

文件类型‍             accept内容 格式说明
*.3gpp audio/3gpp, video/3gpp 3GPP Audio/Video
*.ac3 audio/ac3 AC3 Audio
*.asf allpication/vnd.ms-asf Advanced Streaming Format
*.au audio/basic AU Audio
*.css text/css Cascading Style Sheets
*.csv text/csv Comma Separated Values
*.doc application/msword MS Word Document
*.dot application/msword MS Word Template
*.dtd application/xml-dtd Document Type Definition
*.dwg image/vnd.dwg AutoCAD Drawing Database
*.dxf image/vnd.dxf AutoCAD Drawing Interchange Format
*.gif image/gif Graphic Interchange Format
*.htm text/html                 HyperText Markup Language
*.html                 text/html                 HyperText Markup Language
*.jp2 image/jp2 JPEG-2000
*.jpe image/jpeg JPEG
*.jpeg image/jpeg JPEG
*.jpg image/jpeg JPEG
*.js text/javascript, application/javascript JavaScript
*.json application/json JavaScript Object Notation
*.mp2 audio/mpeg, video/mpeg MPEG Audio/Video Stream, Layer II
*.mp3 audio/mpeg MPEG Audio Stream, Layer III
*.mp4 audio/mp4, video/mp4 MPEG-4 Audio/Video
*.mpeg video/mpeg MPEG Video Stream, Layer II
*.mpg video/mpeg MPEG Video Stream, Layer II
*.mpp application/vnd.ms-project MS Project Project
*.ogg application/ogg, audio/ogg Ogg Vorbis
*.pdf application/pdf Portable Document Format
*.png image/png Portable Network Graphics
*.pot application/vnd.ms-powerpoint MS PowerPoint Template
*.pps application/vnd.ms-powerpoint MS PowerPoint Slideshow
*.ppt application/vnd.ms-powerpoint MS PowerPoint Presentation
*.rtf application/rtf, text/rtf Rich Text Format
*.svf image/vnd.svf Simple Vector Format
*.tif image/tiff Tagged Image Format File
*.tiff image/tiff Tagged Image Format File
*.txt text/plain Plain Text
*.wdb application/vnd.ms-works MS Works Database
*.wps application/vnd.ms-works Works Text Document
*.xhtml                 application/xhtml+xml Extensible HyperText Markup Language
*.xlc application/vnd.ms-excel MS Excel Chart
*.xlm application/vnd.ms-excel MS Excel Macro
*.xls application/vnd.ms-excel MS Excel Spreadsheet
*.xlt application/vnd.ms-excel MS Excel Template
*.xlw application/vnd.ms-excel MS Excel Workspace
*.xml text/xml, application/xml Extensible Markup Language
*.zip aplication/zip Compressed Archive

非MVC不知道怎么样,在MVC中使用过程中,选择文件的时候是限制了,但是提交的时候,会提示文件有问题,无法提交,去掉accept就可以提交,所以最好的办法其实是在javascript或者Jquery中限制。

 $(function (){
$("#file").change(function () {
var f = $("#file").val();
if (f == '') {
alert("请选择图片上传");
return false;
}
else if (f.indexOf('.png') > -1 || f.indexOf('.jpg') > -1) {
return true;
} else {
alert("只允许png或jpg格式图片");
$("#file").val('');
return false;
}
});
});

Jquery

这里只是在改变事件中限制了,其实表单提交前应该还要在判断文件是否为空。