java web中文件类型,java web项目文件上传中常见的mime类型/文件类型校验、验证/只允许特定类型的文件(基于Apache的tika)...

java代码

final Tika tika = new Tika();

Set allowMimeTypeAll =

ImmutableSet.of("image/pjpeg", "application/pdf", "application/msword", "image/jpeg",

"image/x-png", "image/tiff", "application/vnd.ms-excel", "application/zip",

"image/bmp", "image/x-bitmap", "image/x-pixmap", "image/jpg",

"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" /*xlsx*/

, "application/x-rar-compressed", "application/rtf", "application/x-tika-ooxml",/*xls*/

"application/vnd.openxmlformats-officedocument.spreadsheetml.template",/*xltx*/

"application/vnd.ms-spreadsheetml",/*excel*/"application/vnd.ms-xpsdocument",/*xps*/

"application/x-bplist"/*pdf*/, "application/x-mswrite",/*Ms Write*/

"application/vnd.ms-word.document.macroenabled.12"/*docm*/, "application/x-tika-msoffice"/*pdf*/,

"application/vnd.openxmlformats-officedocument.wordprocessingml.document", /*docx*/

"application/vnd.openxmlformats-officedocument.wordprocessingml.template", /*dotx*/

"application/vnd.ms-powerpoint",/*ppt*/"vnd.ms-project",/*Microsoft Project*/

"application/vnd.visio"/*Visio*/, "image/svg+xml",/*svg*/"application/vnd.ms-works",/*wps*/

"application/vnd.openxmlformats-officedocument.presentationml.slideshow",/*ppsx*/

"application/vnd.openxmlformats-officedocument.presentationml.presentation"/*pptx*/,

"application/vnd.openxmlformats-officedocument.presentationml.template"

, "application/x-7z-compressed", "application/vnd.ms-xpsdocument"/*xps*/);

Set allowMimeType = ImmutableSet.of("application/pdf", "application/x-bplist"/*pdf*/, "application/x-tika-msoffice"/*pdf*/);

//final String allowExtensionAll ="目前支持的文件类型:pdf,zip,rar,7z,bmp,jpeg,jpg,png,tiff,svg;WPS,Excel,PPT,Microsoft Project,Visio,Word,RTF类型文件。";

final String allowExtension = "目前仅支持PDF文件类型附件";

校验代码

@RequestMapping(value = "start", method = RequestMethod.POST)

@ResponseBody

public String start(@Valid Project project, @RequestParam("prjInfoFile") MultipartFile prjInfoFile,

@RequestParam("prjDesignFile") MultipartFile prjDesignFile, @RequestParam("prjFinanceFile") MultipartFile prjFinanceFile,

@RequestParam("files") MultipartFile[] files, Model model) throws IOException {

byte[] byteInfoFile = prjInfoFile.getBytes();

if (byteInfoFile.length > 0) {

String filename = prjInfoFile.getOriginalFilename().toLowerCase();

String mimeType = tika.detect(byteInfoFile);

log.info("文件类型:{}", mimeType);

if (!(allowMimeType.contains(mimeType) || filename.endsWith(".pdf"))) {

return "error:【项目情况表】服务器暂不接受此类型的附件。".concat(allowExtension);

}

}

}

来源:https://www.cnblogs.com/passedbylove/p/12801686.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值