博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SpringMVC上传文件
阅读量:7064 次
发布时间:2019-06-28

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

  SpringMVC中上传文件还是比较方便的,Spring内置了一些上传文件的支持类,不需要复杂的操作即可上传文件。

  文件上传需要两个jar支持,一个是commons-fileupload.jar和commons-io.jar。并且需要在springMVC的配置文件中加入支持文件上传的配置:

  

1 
2
3

  可配置项还有maxuploadsize、uploadTempDir、maxInMemorySize等等。

  jsp页面代码:

1 2       
3 文件:
4 参数:
5
6
7

 

  文件上传的controller代码:

  

1 import java.io.File; 2 import java.io.IOException; 3 import javax.servlet.http.HttpServletRequest; 4 import org.springframework.stereotype.Controller; 5 import org.springframework.web.bind.annotation.RequestMapping; 6 import org.springframework.web.bind.annotation.RequestParam; 7 import org.springframework.web.multipart.MultipartFile; 8  9 @Controller10 public class UploadController{11     12     @RequestMapping("/upload")13     public String upload(@RequestParam("file") MultipartFile file, HttpServletRequest request){14         if(file.isEmpty()){15             System.out.println("file is null---");16             return null;17         }18         19         try {20             String fileName = file.getOriginalFilename();21             fileName = new String(fileName.getBytes("iso8859-1"), "UTF-8"); //防止文件名中的中文乱码,进行utf-8转码22             23             String newPath = request.getSession().getServletContext().getRealPath("upload"); //使用项目下的upload目录存放上传的文件24             String param = request.getParameter("param");  //获取到表单提交的参数25             System.out.println("param:"+param);26             File newFile2 = new File(newPath);27             if(!newFile2.exists()){28                 newFile2.mkdir();29             }30             File newFile = new File(newPath+File.separator+fileName);31             file.transferTo(newFile);  // 存储文件32         } catch (IOException e) {33             e.printStackTrace();34         }35         return null;36     }37 }

 

转载于:https://www.cnblogs.com/bigbang92/p/springMVC-fileupload.html

你可能感兴趣的文章
ng6--错误信息小结(持续更新)
查看>>
ECMAScript6(0):ES6简明参考手册
查看>>
CoolViewPager:即刻刷新,自定义边缘效果颜色,双向自动循环,内置垂直切换效果,想要的都在这里...
查看>>
Python学习之路13-记分
查看>>
从tcpdump抓包看TCP/IP协议
查看>>
【跃迁之路】【463天】刻意练习系列222(2018.05.14)
查看>>
windows-nginx-https-本地配置
查看>>
JDK9: 集成 Jshell 和 Maven 项目.
查看>>
【跃迁之路】【444天】程序员高效学习方法论探索系列(实验阶段201-2018.04.25)...
查看>>
回流、重绘及其优化
查看>>
责任链模式的两种实现
查看>>
入口文件开始,分析Vue源码实现
查看>>
LintCode 31. partitionArray 数组划分
查看>>
vue和cordova项目整合打包,并实现vue调用android的相机的demo
查看>>
微信开放平台全网发布【失败】的几点排查方法
查看>>
vue-router 实现分析
查看>>
js如何打印object对象
查看>>
体验javascript之美-第五课 匿名函数自执行和闭包是一回事儿吗?
查看>>
Ruby 2.x 源代码分析:扩展 概述
查看>>
我感觉这是史上最牛的防sql注入方法类
查看>>