環境:springMVC+commons-fileupload實現文件上傳到Tomacat目錄下。html
1.添加maven依賴java
commons-fileupload Maven地址:web
<dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.2</version> </dependency>
2.配置spring環境:spring
<!-- 多部分文件上傳 -->
mvc
<!-- 多部分文件上傳 --> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <property name="maxUploadSize" value="104857600" /> <property name="maxInMemorySize" value="4096" /> <property name="defaultEncoding" value="UTF-8"></property> </bean>
以上spring環境的設置根據具體須要設置app
3.準備java代碼處理圖片maven
@Controller public class FileUploadController { /* * 採用spring提供的上傳文件的方法 */ @RequestMapping("springUpload") @ResponseBody public ModelAndView springUpload(HttpServletRequest request) throws IllegalStateException, IOException { String realPath=request.getSession().getServletContext().getRealPath("upload")+"\\"; System.out.println(realPath); long startTime = System.currentTimeMillis(); // 將當前上下文初始化給 CommonsMutipartResolver (多部分解析器) CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver( request.getSession().getServletContext()); // 檢查form中是否有enctype="multipart/form-data" if (multipartResolver.isMultipart(request)) { // 將request變成多部分request MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request; // 獲取multiRequest 中全部的文件名 Iterator iter = multiRequest.getFileNames(); while (iter.hasNext()) { // 一次遍歷全部文件 MultipartFile file = multiRequest.getFile(iter.next().toString()); if (file != null) { String path = realPath + System.currentTimeMillis()+file.getOriginalFilename(); // 上傳 file.transferTo(new File(path)); } } } long endTime = System.currentTimeMillis(); System.out.println("方法三的運行時間:" + String.valueOf(endTime - startTime) + "ms"); return null; } }
代碼中的upload目錄位於工程目錄下的post
4.前臺頁面ui
<!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>Insert title here</title> </head> <body> <form name="Form2" action="/工程名/springUpload" method="post" enctype="multipart/form-data"> <h1>使用spring mvc提供的類的方法上傳文件</h1> <input type="file" name="file"> <input type="submit" value="upload"/> </form> </body> </html>
原文博客有比較三種後臺處理的時間 傳送門code