添加依赖
首先通过maven添加相关依赖
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.5</version>
</dependency>
前端界面
<form id = "uploadForm" name = 'Form2' method="post" action="${pageContext.request.contextPath}/upload/do" enctype="multipart/form-data">
<div class="form-group">
<label for="examfile">File input</label>
<input type="file" id="examfile" name = "examfile">
<button class="help-block" οnclick="uploadFile()" id = "upload">上传文件</button>
</div>
</form>
ajax方法
$(function () {
$("#upload").click(function () {
var formData = new FormData($('#uploadForm')[0]);
$.ajax({
type: 'post',
url: "${pageContext.request.contextPath}/upload/do",
data: formData,
cache: false,
processData: false,
contentType: false
}).success(function (response) {
alert(response);
}).error(function () {
alert("上传失败");
});
})
})
后端处理
后端实现如下
package com.controller;
import com.sun.xml.internal.ws.policy.privateutil.PolicyUtils;
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.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.commons.CommonsMultipartFile;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.io.*;
import java.util.Date;
@Controller
@RequestMapping("upload")
public class UploadController{
@RequestMapping(value = "do")
@ResponseBody
public String upload(HttpServletRequest request, @RequestParam("examfile") MultipartFile files)throws IOException {
System.out.println(request.getAttribute("examfile"));
System.out.println(files.getName());
System.out.println("fileName:"+files.getOriginalFilename());
String path="E:/upload/"+new Date().getTime()+files.getOriginalFilename();
File newFile=new File(path);
//通过CommonsMultipartFile的方法直接写文件(注意这个时候)
files.transferTo(newFile);
return "success";
}
}