SpringMVC文件上傳

package com.zzxsoft.controller;


import java.io.File;


import java.util.Iterator;


import javax.servlet.http.HttpServletRequest;


import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.multipart.commons.CommonsMultipartResolver;
import org.springframework.web.servlet.ModelAndView;

/*文件上傳,FileUploadController類
 * @ author
 * **/
@Controller
@RequestMapping("/file")
public class FileUploadController {
@RequestMapping("/upload")


public ModelAndView upload(HttpServletRequest request) throws Exception {
// 將當前文件初始化給CommonsMutipartResolver (多部分解析器)
int count = 0;
CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(
request.getSession().getServletContext());
// 檢查表單中是否有 enctype="multipart/from-data"
if (multipartResolver.isMultipart(request)) {
// 將request變成多部分request
MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request;
// 獲取multiRequest中所有的文件域中
Iterator iterator = multiRequest.getFileNames();
// 遍歷所有文件域
while (iterator.hasNext()) {
// 判斷是否有選擇的文件
MultipartFile file = multiRequest.getFile(iterator.next().toString());
// 判斷文件域中是否有選擇的文件
if (file != null && file.getOriginalFilename() != "") {
// 路徑是項目中服務器端的路徑. file.getOriginalFilename()是文件名,包含後綴 .txt
String path = request.getSession().getServletContext().getRealPath("/fileUpload/")
+ file.getOriginalFilename();


System.out.println(path);
// 上傳文件
file.transferTo(new File(path));
count++;
}
}
}


return new ModelAndView("fileUpload", "msg", "成功上傳 " + count + " 個文件");


}


}



/*文件上傳,.jsp頁面
 * @ author
 * **/


SpringMVC-servlet.xml的配置

<!-- 文件上傳  CommonsMultipartResolver-->
    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
         <!-- 設置文件上傳最大值,注意,這個值是所有文件的大小和 1024*1024*4 =  4 M -->
         <property name="maxUploadSize" value="4194304"/>
         <!-- 緩衝區大小  -->
         <property name="maxInMemorySize" value="4096"/>
         <!-- 設置上傳時的字符編碼 -->
         <property name="defaultEncoding" value="utf-8"/>
    </bean>

上傳前的界面


上傳時的界面


上傳好返回時的界面


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章