博客
关于我
上传文件进行格式限制 --input file
阅读量:587 次
发布时间:2019-03-12

本文共 1657 字,大约阅读时间需要 5 分钟。

文件上传格式验证方法

在文件上传功能中,为了确保用户上传的文件符合预期格式,常需要对文件类型进行验证。最直接的方法是通过文件扩展名来判断,但这种方式并非万能解决方案。在实际项目中,可能会根据需求对多个文件格式进行限制或允许。以下是常见的文件格式对应的MIME类型及验证方法示例。

常见文件格式对应的MIME类型

  • .xls:对应 application/vnd.ms-excel
  • .xlsx:对应 application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
  • .doc:对应 application/msword
  • .pdf:对应 application/pdf
  • .png:对应 image/png
  • .jpg:对应 image/jpeg
  • .gif:对应 image/gif
  • .xml:对应 text/xmlapplication/xml

在前端验证时,可以通过获取文件的扩展名并与允许的格式列表进行匹配来判断文件是否合规。以下是一个常见的验证逻辑示例:

const allowedExtensions = ['xls', 'xlsx'];const fileExtension = file.name.split('.')[1].toLowerCase();if (!allowedExtensions.includes(fileExtension)) {    alert('请上传.XLS或.XLSX格式的文件-fixed-');    return false;}

文件类型验证的扩展

在实际项目中,文件上传格式的限制可能会根据业务需求有所不同。以下是一些常见的文件格式及其对应的MIME类型:

  • .ac3audio/ac3
  • .asfapplication/vnd.ms-asf
  • .auaudio/basic
  • .csstext/css
  • .csvtext/csv
  • .docxapplication/vnd.openxmlformats-officedocument.wordprocessingml.document
  • .dxfimage/vnd.dxf
  • .epsimage/vnd.eps
  • .gifimage/gif
  • .icoimage/x-icon
  • .jpeimage/jp2
  • .jpegimage/jpeg
  • .jpgimage/jpeg
  • .jsonapplication/json
  • .movvideo/quicktime
  • .mp3audio/mpeg
  • .mp4video/mp4
  • .mpegvideo/mpeg
  • .oggaudio/ogg
  • .pdfapplication/pdf
  • .pngimage/png
  • .potapplication/vnd.ms-powerpoint
  • .ppsapplication/vnd.ms-powerpoint
  • .pptapplication/vnd.ms-powerpoint
  • .rtfapplication/rtf
  • .svfimage/vnd.svf
  • .tifimage/tiff
  • .tiffimage/tiff
  • .txttext/plain
  • .wdbapplication/vnd.ms-works
  • .wpsapplication/vnd.ms-works
  • .xhtmlapplication/xhtml+xml
  • .xlsmapplication/vnd.ms-excel.sheet.macroEnabled.12
  • .xltapplication/vnd.ms-excel
  • .xlwapplication/vnd.ms-excel
  • .xmltext/xml
  • .zipapplication/zip

在开发过程中,可以根据具体需求灵活配置允许的文件格式列表,并在项目中添加相应的格式验证逻辑,以确保文件上传的安全性和规范性。

转载地址:http://yhhtz.baihongyu.com/

你可能感兴趣的文章
异或交换两个数的值
查看>>
使用python绘出常见函数
查看>>
Golang AES加密
查看>>
Puppet的一些奇技淫巧
查看>>
foreman源NO_PUBKEY 6F8600B9563278F6
查看>>
亚马逊aws文档语法错误
查看>>
什么是5G?居然有人用漫画把它讲得如此接地气!
查看>>
Spring cloud --分布式配置中心组件Spring Cloud Config
查看>>
UE4接入Android第三方库2——通过JIN与GameActivity通信
查看>>
Unity Job System 2——并行处理数据
查看>>
BIG解决保险欺诈问题,开创数字化保险时代
查看>>
Apache JMeter5.3 压力测试
查看>>
c++ hpp使用好处
查看>>
Mac 使用Eclipse老是闪退解决方案
查看>>
谈笑间学会-Hbase Rowkey设计
查看>>
spark概述
查看>>
[密码学] RSA同模攻击与选择密文攻击
查看>>
JavaScript 知识梳理[一] 变量类型,浅拷贝,深拷贝
查看>>
Linux学习笔记(二):文件权限与目录配置
查看>>
Coursera普林斯顿算法课第二次作业
查看>>