文件上传类型限制

一、上传文件时,可在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>

如图:
这里写图片描述

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

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

 

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

.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

 

四、附上常用的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
*.xlsm  application/vnd.ms-excel.sheet.macroEnabled.12
*.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
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
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路径下,判断上文件类型是否为图片,如果不是,则返回错误提示信息。通过以上限制文件类型的方法,我们可以保证文件的安全性,有效防止系统的被攻击风险。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值