Spring CommonsMultipartResolver文件上传的使用
2015-12-21 09:49
801 查看
Java代码 ...Controller...{ //创建一个通用的多部分解析器. CommonsMultipartResolver commonsMultipartResolver = new CommonsMultipartResolver(request.getSession().getServletContext()); //设置编码 commonsMultipartResolver.setDefaultEncoding(”utf-8″); //判断 request 是否有文件上传,即多部分请求... if (commonsMultipartResolver.isMultipart(request)) { //转换成多部分request MultipartHttpServletRequest multipartRequest = commonsMultipartResolver.resolveMultipart(request); // file 是指 文件上传标签的 name=值 // 根据 name 获取上传的文件... MultipartFile file = multipartRequest.getFile("file"); //上传后记录的文件... File imageFile = new File("fileName"); //上传... file.transferTo(imageFile); } }
jsp代码
<form name="form1" method="POST" enctype="multipart/form-data" action="/msgupload" target="upload_if"> <button class="btn btn-primary able" name = "btnporject" id="queryfa" type="button" style="float: inherit;"/> 请选择要上传的文件: <input type="file" name="file"> <input type="submit" id="sub" class="btn btn-primary" value="上传"> <iframe name='upload_if' id="hidden_frame" style='display:none'></iframe> </form>
java代码
@RequestMapping(value = "/msgupload", method = RequestMethod.POST) public String handleFileUpload(Model model, @RequestParam("file") MultipartFile file, HttpServletRequest request, HttpServletResponse response) { try{ if (!file.isEmpty()) { // 创建一个通用的多部分解析器. CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(request.getSession().getServletContext()); // 判断 request 是否有文件上传,即多部分请求... if (multipartResolver.isMultipart(request)) { // 判断 request 是否有文件上传,即多部分请求... MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) (request); Iterator<String> iter = multiRequest.getFileNames(); while (iter.hasNext()) { MultipartFile file1 = multiRequest.getFile(iter.next()); String fileName = file1.getOriginalFilename(); String ftp_id = System.currentTimeMillis(); Properties propsFile = new Properties(); InputStream in = null; String path1 = Thread.currentThread().getContextClassLoader().getResource("").getPath(); in = new BufferedInputStream(new FileInputStream(path1 + "ftpcontrol.properties")); propsFile.load(in); String path = propsFile.getProperty("upload_path") + ftp_id + ".zip"; File localFile = new File(path); if (!(fileName.contains("zip"))) { ...... } else { // 上传文件 file1.transferTo(localFile); int count = msgSendService.unZip(localFile); if(count == 0) { ...... } ...... } } } } else { ...... } }catch(Exception e) { ...... } ...... }
相关文章推荐
- Java正则表达式详解
- Java线程池中线程的状态简介
- Myeclipse XSD配置XML自动提示
- Java.IO包-File 学习笔记
- Java线程Dump分析工具--jstack
- Java Web系列:Java Web基础
- 从头认识java-13.11 对比数组与泛型容器,观察类型擦除给泛型容器带来什么问题?
- Java算法---华为oj迷宫问题求解(深度优先搜索)
- classpath、path、JAVA_HOME的作用及JAVA环境变量配置
- classpath、path、JAVA_HOME的作用及JAVA环境变量配置
- spring学习(一)——控制反转简单例子
- 四道Java基础题 你能对几道?
- Java中判断String不为空的问题性能比较
- 举例讲解Java的Hibernate框架中的多对一和一对多映射
- Java工程师成神之路
- 使用必应查询接口开发搜索工具:反查一个IP上的旁站
- 【JAVA】用java编写程序时总提示缺少方法主体或声明抽象的原因
- javaday25-多线程下
- Spring AOP概念理解 (通俗易懂)
- IDEA中调试Java编译器小结