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>

上传前的界面


上传时的界面


上传好返回时的界面


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