需提前导好包
写一个简单的提交页面
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" content="text/html;charset=utf-8"> <title>Title</title> </head> <body> <form action="/file/upload" method="post" enctype="multipart/form-data"> <input name="file" type="file"/> <button type="submit">tijiao</button> </form> </body> </html>
接着是java代码
package cn.itsource.uploadfile; import org.apache.commons.io.FilenameUtils; import org.apache.commons.io.IOUtils; import org.apache.commons.io.filefilter.FileFilterUtils; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; import java.io.FileOutputStream; import java.io.FilenameFilter; import java.io.IOException; import java.io.InputStream; @Controller @RequestMapping("/file")//暴露一个路径给网页访问 public class UploadFile { //这里同样是暴露一个路径 @RequestMapping("/upload") @ResponseBody public void _01(MultipartFile file, HttpServletRequest request) throws IOException { //把文件转换为输入流 InputStream inputStream = file.getInputStream(); //随机生产一个名字 long l = System.currentTimeMillis(); String originalFilename = file.getOriginalFilename(); String extension = FilenameUtils.getExtension(originalFilename); String filename = l+"."+extension; //动态获取项目路径 String realPath = request.getServletContext().getRealPath("/upload"); //把路径和文件名字转换成输出流 FileOutputStream fileOutputStream = new FileOutputStream(realPath+"/"+filename); //文件上传核心方法 IOUtils.copy(inputStream,fileOutputStream); //关流 fileOutputStream.close(); fileOutputStream.close(); } }