Osheep

时光不回头,当下最重要。

SpringMVC上传文件

一、相关jar包
  1. apache-commons-fileupload.jar
  2. apache-commons-io.jar
二、修改配置文件
<!-- 处理文件上传 -->
<bean id="multipartResolver" 
class="org.springframework.web.multipart.commons.CommonsMultipartResolver" >  
<property name="defaultEncoding" value="gbk"/> <!-- 默认编码 (ISO-8859-1) -->  
<property name="maxInMemorySize" value="10240"/> <!-- 最大内存大小 (10240)-->  
<property name="uploadTempDir" value="/upload/"/> <!-- 上传后的目录名 -->  
<property name="maxUploadSize" value="-1"/> <!-- 最大文件大小,-1为无限止(-1) -->  
</bean>
三、前端HTML代码
<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<title>springmvc中上传的实现</title>
</head>
<body>
    <form action="upload.do"  method="post" enctype="multipart/form-data">
        <input type="text" name="name" />
        <input type="file" name="file" />
        <input type="submit" />
    </form>
</body>
</html>
四、Controller类实现上传代码
package cfs.admin.controller;
import java.io.File;
import java.util.Date;
import javax.servlet.ServletContext;
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.context.ServletContextAware;
import org.springframework.web.multipart.commons.CommonsMultipartFile;

@Controller
public class FileUploadController implements ServletContextAware {
   //获取上下文对象
  private ServletContext servletContext;
  @Override
  public void setServletContext(ServletContext context) {
      this.servletContext  = context;
  }

  @RequestMapping(value="/upload", method = RequestMethod.POST)
  public String handleUploadData(String name,
               @RequestParam("file") CommonsMultipartFile file){
      String view_url="redirect:upload_error.jsp";
      if (!file.isEmpty()) {
           //获取本地存储路径
           String path = this.servletContext.getRealPath("/upload/");  
           String fileName = file.getOriginalFilename();
           String fileType = fileName.substring(fileName.lastIndexOf("."));
           //新建一个文件
           File file2 = new File(path,new Date().getTime() + fileType); 
           try {
                //将上传的文件写入新建的文件中
                file.getFileItem().write(file2); 
           } catch (Exception e) {
                e.printStackTrace();
                return view_url;
           }
           view_url= "redirect:upload_ok.jsp";
      }
    return view_url;
  }
}

OK,至此已可以上传文件了,亲测可用,灰常简单。

点赞