依赖
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.4</version>
</dependency>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.2</version>
</dependency>
具体可以参考 教你一步步搭建ssm框架,第一步实现springmvc下的页面跳转 - 2018
uploadFile.jsp
<%@ page language="java" contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html >
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title> spring mvc 文件上传</title>
</head>
<body>
<form action="execUpload" method="post" enctype="multipart/form-data">
fileName:<input type="text" name="fileName"/><br/>
file:<input type="file" name="file"><br/>
<input type="submit" value="上传">
</form>
</body>
</html>
UploadController
package com.faceghost.app.controller;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.UUID;
import javax.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.multipart.MultipartFile;
@Controller
public class UploadController {
/**
* 文件上传
* @param request
* @return
*/
@RequestMapping("/execUpload")
public void execUpload(MultipartFile file , String fileName, HttpServletRequest request) throws Exception {
//开始
System.err.println("upload s ...");
System.err.println("fileName:" + fileName);
String oFileName = file.getOriginalFilename();
System.err.println("oFileName:" + oFileName);
/**
* 获取文件类型
*
*/
String fileType = oFileName.substring(oFileName.lastIndexOf("."),oFileName.length());
/**
* 获取项目webapp目录下的upload的路径
*/
String prePath = request.getSession().getServletContext().getRealPath("upload");
System.err.println("prePath:" + prePath);
/**
* 上传保存后新的文件名称
*/
String newFileName = UUID.randomUUID().toString() + fileType;
System.err.println("newFileName:" + newFileName);
/**
* 复制流,或者,IOUtils.copy(input, output);
*/
InputStream inputStream = file.getInputStream();
File newFile = new File(prePath + File.separator + newFileName);
OutputStream outputStream = new FileOutputStream(newFile);
byte[] b = new byte[inputStream.available()] ;
inputStream.read(b);
outputStream.write(b);
inputStream.close();
outputStream.close();
System.err.println("upload e ...");
}
}
浏览器访问:http://localhost:8080/app/uploadFile
点击上传