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

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

  

  1. <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
  2. <property name="defaultEncoding" value="utf-8" />
  3. </bean>

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

  jsp页面代码:

  1. <body>
  2. <form action="<%=path %>/upload" method="post" enctype="multipart/form-data">
  3. 文件:<input type="file" name="file" id="file" /><br/>
  4. 参数:<input type="text" name="param" id="param" /><br/>
  5. <button type="submit">提交</button>
  6. </form>
  7. </body>

  文件上传的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. @Controller
  10. 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. }

SpringMVC上传文件的更多相关文章

  1. springmvc上传文件,抄别人的

    SpringMVC中的文件上传 分类: SpringMVC 2012-05-17 12:55 26426人阅读 评论(13) 收藏 举报 stringuserinputclassencoding 这是 ...

  2. 2. SpringMVC 上传文件操作

    1.创建java web项目:SpringMVCUploadDownFile 2.在项目的WebRoot下的WEB-INF的lib包下添加如下jar文件 com.springsource.com.mc ...

  3. 使用springMVC上传文件

    control层实现功能: @RequestMapping(value="upload2") public String upLoad2(HttpServletRequest re ...

  4. SpringMVC上传文件(图片)并保存到本地

    SpringMVC上传文件(图片)并保存到本地 小记一波~ 基本的MVC配置就不展示了,这里给出核心代码 在spring-mvc的配置文件中写入如下配置 <bean id="multi ...

  5. SpringMVC上传文件总结

    如果是maven项目 需要在pom.xml文件里面引入下面两个jar包 <dependency> <groupId>commons-fileupload</groupId ...

  6. SpringMVC 上传文件 MultipartFile 转为 File

    在使用 SpringMVC 上传文件时,接收到的文件格式为 MultipartFile,但是在很多场景下使用都需要File格式的文件,记录下以便日后使用. 以下mFile为MultipartFile文 ...

  7. springmvc 上传文件时的错误

    使用springmvc上传文件一直失败,文件参数一直为null, 原来是配置文件没写成功. <bean id="multipartResolver" class=" ...

  8. SpringMVC上传文件的三种方式(转)

    直接上代码吧,大伙一看便知 这时:commonsmultipartresolver 的源码,可以研究一下 http://www.verysource.com/code/2337329_1/common ...

  9. SpringMVC上传文件的三种方式

    直接上代码吧,大伙一看便知 这时:commonsmultipartresolver 的源码,可以研究一下 http://www.verysource.com/code/2337329_1/common ...

随机推荐

  1. mac下配置openfire

    下载 在浏览器中打开如下网址http://www.igniterealtime.org/downloads/index.jsp,根据你的操作系统选择对应的版本进行下载,这里我是在mac下配置的,所以选 ...

  2. iOS官方Sample大全

    转载自:http://blog.csdn.net/yangtb2010/article/details/7005471 http://developer.apple.com/library/ios/s ...

  3. 慕课网-安卓工程师初养成-6-3 如何使用 Java 中的数组

    来源:http://www.imooc.com/code/1525 Java 中操作数组只需要四个步骤: 1. 声明数组 语法:  或者  其中,数组名可以是任意合法的变量名,如: 2. 分配空间 简 ...

  4. js复制input 框中的值

    function copy(){ var Url2=document.getElementById("copyValue"); Url2.select(); document.ex ...

  5. 多媒体(3):基于WindowsAPI的视频捕捉卡操作

    目录 多媒体(1):MCI接口编程 多媒体(2):WAVE文件格式分析 多媒体(3):基于WindowsAPI的视频捕捉卡操作 多媒体(4):JPEG图像压缩编码 多媒体(3):基于WindowsAP ...

  6. TortoiseSVN文件夹及文件状态图标不显示解决方法

    win8 64位系统,原本svn是好用的,安装了klive金山快盘后,svn图标都不显示了.最后通过修改注册表解决: win+R调出运行框,输入regedit,打开注册表编辑器. HKEY_LOCAL ...

  7. c++学习笔记——构造函数

    构造函数定义:每个类都分别定义了它的对象被初始化的方式,类通过一个或几个特殊的成员函数来控制其对象的初始化过程,这些函数叫做构造函数. 需要注意的几点: 1:构造函数不能被声明为const的,当我们创 ...

  8. VC++ 将资源位图画到窗口上去的方法

    第一种方法最简单:直接看代码 CImage img; img.LoadFromResource(AfxGetInstanceHandle(), IDB_BITMAP1); img.Draw(*pDc, ...

  9. ORACLE恢复数据

    ORACLE恢复删除表或表记录 一:表的恢复      对误删的表,只要没有使用PURGE永久删除选项,那么从flash back区恢复回来希望是挺大的.一般步骤有: 1.从flash back里查询 ...

  10. 关于生物信息学与R的相关资料和网站

    生物信息学的相关论坛:http://www.omicshare.com/forum/ 糗世界:http://qiubio.com:8080/ 统计之都网站 绘制QQ图和曼哈顿图:http://www. ...