首先肯定是支持选择上传文件的前台:
- <%@ page language="java" contentType="text/html; charset=UTF-8"
- pageEncoding="UTF-8"%>
- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
- <title>hello</title>
- </head>
- <body>
- <div>
- <form enctype='multipart/form-data' method="post" action="upload.do">
- <input type="file" name="uploadFile" />
- <button>提交</button>
- </form>
- </div>
- </body>
- </html>
调用后台的upload.do的请求
spring mvc 只需在请求前注解@RequstMapping("your request name")便可对应
- package hope.cs.zhku.controller;
- import java.io.File;
- import java.io.FileNotFoundException;
- import java.io.FileOutputStream;
- import java.io.IOException;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import org.springframework.stereotype.Controller;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.multipart.MultipartFile;
- import org.springframework.web.multipart.MultipartHttpServletRequest;
- /******************************************************************************
- * 名称:UserBasicEditorController.java</br>
- * 日期:2011-8-15</br>
- * 功能:</br>
- * 编写:Willson Huang</br>
- * 复核:</br>
- * 其他:</br>
- * 历史:(说明,修改人,时间)</br>
- * 1.create ,Willson Huang ,2011-8-15
- *****************************************************************************/
- @Controller
- public class UploadController {
- @RequestMapping("upload.do")
- public String upload(HttpServletRequest request,HttpServletResponse response ){
- MultipartHttpServletRequest multipartHttpservletRequest=(MultipartHttpServletRequest) request;
- MultipartFile multipartFile = multipartHttpservletRequest.getFile("uploadFile");
- String originalFileName=multipartFile.getOriginalFilename();
- File file=new File("file");
- if(!file.exists()){
- file.mkdir();
- }
- System.out.println(file.getAbsolutePath());
- try {
- FileOutputStream fileOutputStream=new FileOutputStream(file+"/uploadFile"+originalFileName.substring(originalFileName.lastIndexOf('.'), originalFileName.length()));
- fileOutputStream.write(multipartFile.getBytes());
- fileOutputStream.flush();
- fileOutputStream.close();
- } catch (FileNotFoundException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- return "error";
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- return "error";
- }
- return "uploadSuccess";
- }
- }
此时,配置文件如前一遍文章的配置所示,此处不再列出,控制器中有一句输出语句,输出文件储存的位置,可自行更改