springMVC文件上传

246 阅读1分钟

第一步,引入文件上传的依赖坐标

      <!-- 添加commons-fileupload 依赖 -->
      <dependency>
          <groupId>commons-fileupload</groupId>
          <artifactId>commons-fileupload</artifactId>
          <version>1.3.2</version>
      </dependency>

第二步,在配置文件中添加解析器

<!--    文件上传与下载配置-->
    <bean id="multipartResolver"
    class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
   <property name="maxUploadSize">
   <value>104857600</value>
   </property>
   <property name="maxInMemorySize">
   <value>4096</value>
   </property>
</bean>

第三步:写java代码

package com.zks.springmvc.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;

import javax.servlet.http.HttpServletRequest;
import java.io.File;

@Controller
public class FileController {
    @RequestMapping("uploadFile")
    public String uploadFile(HttpServletRequest request) {
        MultipartHttpServletRequest mhsr = (MultipartHttpServletRequest) request;
        MultipartFile multipartFile = mhsr.getFile("file");

        try {
            if (null != multipartFile && multipartFile.getSize() > 0) {
                //获取项目部署的具体路径(绝对路径)

                String basePath = request.getSession().getServletContext().getRealPath("/");
                //创建一个文件夹
                File upload = new File(basePath + "/upload");
                if (!(upload.exists())) {
                    //如果文件不存在
                    upload.mkdir();


                }
                //设置文件名字 系统当前时间毫秒数当作名字
                //getOriginalFilename()这个方法是用来获取文件的原始文件名字
                String fileName = System.currentTimeMillis() + multipartFile.getOriginalFilename().substring(multipartFile.getOriginalFilename().lastIndexOf("."));

                multipartFile.transferTo(new File(upload, fileName));
                request.setAttribute("msg","文件上传成功");
            }else {
                request.setAttribute("msg","文件上传失败");
            }
        } catch (Exception e) {
            request.setAttribute("msg","文件上传失败");
            e.printStackTrace();
        }
        return "result";
    }
}

第四步:在web-INF文件夹下添加success.jsp文件获取msg信息

最终文件会被添加到web-IFO目录下。