文件上传类型限制

1, 上传文件时,可在input 框中添加 accept 属性来限制选择的文件类型,项目中使用时要限制上传类型为word,查找资料发现大部分列举的类型都只有 对doc的限制,而对word2007以上的 docx 类型没法限制,下面给出方法


docx限制:application/vnd.openxmlformats-officedocument.wordprocessingml.document

doc 限制:application/msword


在accept中以逗号分隔开,便可以实现选择文件时,默认只能选择word文件了

<span style="font-size:18px;"><input name="file" type="file" required="required"  class="form-control" accept="application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document"></span>

如图:



2,但是右下角的文件选项中仍可选择 “所有文件” 来改变自定义的类型,所以第二部需要  通过  js 或者其他方式来配合处理,下面给出  js 验证的只能是 word文件的 正则表达式

  regexp: /^.*(\.doc|\.docx)$/




3,附上 office为 2007版本以后的一些 文件限制类型的 属性值


<span style="font-size:18px;">.xlsx   application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
.xltx   application/vnd.openxmlformats-officedocument.spreadsheetml.template
.potx   application/vnd.openxmlformats-officedocument.presentationml.template
.ppsx   application/vnd.openxmlformats-officedocument.presentationml.slideshow
.pptx   application/vnd.openxmlformats-officedocument.presentationml.presentation
.sldx   application/vnd.openxmlformats-officedocument.presentationml.slide
.docx   application/vnd.openxmlformats-officedocument.wordprocessingml.document
.dotx   application/vnd.openxmlformats-officedocument.wordprocessingml.template
.xlsm   application/vnd.ms-excel.addin.macroEnabled.12
.xlsb   application/vnd.ms-excel.sheet.binary.macroEnabled.12</span>


4,附上常用的accept 属性值


<span style="font-size:18px;">*.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</span>



  • 4
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Spring Boot是一个基于Spring框架的Java EE应用程序开发框架,它有助于快速开发可扩展的应用程序。在实际开发中,文件上传功能经常用到,但是为了保证系统的安全性,我们需要限制文件上传类型,防止恶意文件上传对系统造成的危害。下面我们来介绍如何限制文件上传类型。 在Spring Boot中,我们可以使用MultipartFile类来处理文件上传。当用户上传文件时,我们需要先判断文件的类型,如果不符合我们的要求,我们需要拒绝该文件的上传操作。我们可以使用以下步骤来实现文件类型限制: 1. 配置application.properties文件,指定文件上传的最大大小: spring.servlet.multipart.max-file-size=10MB 2. 创建一个类,继承WebMvcConfigurerAdapter,重写addInterceptors方法,设置文件上传类型限制: @Component public class InterceptorConfig extends WebMvcConfigurerAdapter { public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(new FileUploadInterceptor()).addPathPatterns("/upload"); } } //文件上传拦截器 public class FileUploadInterceptor extends HandlerInterceptorAdapter { public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { //获取上传的文件 MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; MultipartFile file = multipartRequest.getFile("file"); //判断文件类型是否为图片 if (file != null) { String fileType = file.getContentType(); if (!fileType.equals("image/jpeg") && !fileType.equals("image/png")) { //文件类型不支持 response.setContentType("application/json;charset=UTF-8"); response.getWriter().write("{\"error_code\":\"1001\",\"message\":\"文件类型不支持\"}"); return false; } } return true; } } 以上代码示例中,我们将拦截器配置在了/upload路径下,判断上传的文件类型是否为图片,如果不是,则返回错误提示信息。通过以上限制文件上传类型的方法,我们可以保证文件上传的安全性,有效防止系统的被攻击风险。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值