问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

springmvc文件上传可以是zip吗

发布网友 发布时间:2022-04-24 00:14

我来回答

1个回答

热心网友 时间:2023-11-01 20:16

Spring MVC文件上传框架是支持zip的,还包括text、xls、word等文件格式,但一般文件大小都有一定的*,如下文件上传zip格式的代码:

package com.test.controller;

import java.io.File;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.apache.commons.io.FilenameUtils;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.commons.CommonsMultipartFile;

import com.test.servlet.NoSupportExtensionException;
import com.test.servlet.State;

@Controller
@RequestMapping(value = "/mvc")
public class UploadController {

/** 日志对象*/
private Log logger = LogFactory.getLog(this.getClass());

private static final long serialVersionUID = 1L;

/** 上传目录名*/
private static final String uploadFolderName = "uploadFiles";

/** 允许上传的扩展名*/
private static final String [] extensionPermit = {"txt", "xls", "zip"};

@RequestMapping(value = "/upload.do", method = RequestMethod.POST)
public @ResponseBody Map<String, Object> fileUpload(@RequestParam("file") CommonsMultipartFile file, 
HttpSession session, HttpServletRequest request, HttpServletResponse response) throws Exception{
logger.info("UploadController#fileUpload() start");

//清除上次上传进度信息
String curProjectPath = session.getServletContext().getRealPath("/");
String saveDirectoryPath = curProjectPath + "/" + uploadFolderName;
File saveDirectory = new File(saveDirectoryPath);
logger.debug("Project real path [" + saveDirectory.getAbsolutePath() + "]");

// 判断文件是否存在
if (!file.isEmpty()) {
String fileName = file.getOriginalFilename();
String fileExtension = FilenameUtils.getExtension(fileName);
if(!ArrayUtils.contains(extensionPermit, fileExtension)) {
throw new NoSupportExtensionException("No Support extension.");
}
file.transferTo(new File(saveDirectory, fileName));
}

logger.info("UploadController#fileUpload() end");
return State.OK.toMap();
}

}

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
excel表格公式无效、不生效的解决方案及常见问题、常用函数 德尔塔6cd机可以吗 德尔塔6cd机怎么连接碟盒 华为p20pro中开启抬手亮屏的简单步骤 曲面屏国产手机哪个好 性价比高的曲面屏手机 性价比最高的曲屏手机 曲面屏性价比最高手机 WEYVV72020款5座落地价多少钱? 贷款买VV7PHEV前期需要准备多少钱?后期月供多少? 什么是代理服务器? 原理及其作用 ARP缓存表有什么用? 电脑中的 bind()错误是什么? 跪求《Bind, Torture, Kill 》电子书网盘资源下载 BIND9.7.2-P3.zip 如何解压 再保险是什么意思? 原保险与再保险 再保险与原保险的主要区别不包括 再保险与原保险的关系 再保险与原保险的有区别? “原保险”与“再保险”的区别是什么 再保险与原保险的有区别 自动调节亮度是省点还是费电 怎样恢复截屏图片 我想要恢复之前删掉的截屏? 手机删除好久的截图怎么都可以恢复吗? 截屏照片删了怎么恢复 MT4平台 如何导入公式使之显示各种指标? 板栗真的补肾么? 吃多有啥好处和坏处 如何编写MT4指标 栗子的营养价值 pep三到五年级动词词组 如何在插件开发中正确使用第三方jar包 为什么打开下载的视频文件时,提示无法播放该文件。怎么解决? sublime用v-bind绑定class时报错,但浏览器可以正常显示 怎么使用cdn高速下载,步骤什么样 按键精灵的问题,怎么加入鼠标点击下载动作?我要实现打开网站后鼠标点击下载,然后下载 飞鸽传书出现错误双击图标出现:&quot;bind()错误=10048&quot;,怎么回事啊,用不了啊,急急急!下载了还是出现这种情况 在多特网下载的CS1.6魔兽版怎样放技能? 我的世界指令大全下载 小米手机隐藏搜索栏 超级邮件群发机软件注册教程 如何用超级邮件群发机发送邮件 如何群发相同邮件分别给不同的人? 想群发邮件,但是想让每位收件人收到不同的代码怎么实现? 超级邮件群发机 怎么批量导入发件人 超级邮件群发机为什么发邮件进不了QQ邮箱 超级邮件群发机怎么使用? 超级邮件群发机发件人邮箱怎么转换 超级邮件群发机怎么不发进垃圾箱 超级邮件群发机的统计功能怎么用