package com.xiangshuai.controller;
import java.io.File;
import java.io.IOException;
import javax.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;
/***
*
* @author xiangshuai
* springmvc 单和多文件上传
* 所需额外JAR 包 : commons-fileupload-1.2.2.jar 和 commons-io-1.3.2.jar
* dispatcherServlet-servlet.xml 中需配置如下bean:
*
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
10485760
UTF-8
* 项目所在地: E:\学习文档子目录压缩\框架\springmvc\文件上传\springmvc2.zip 和
* 我的网盘\我的笔记\学习文档子目录压缩\框架\springmvc\文件上传\springmvc2.zip
*/
@Controller
@RequestMapping("/upLoad")
public class FileUpload {
@RequestMapping("/dFileLoad")
//用 MultipartFile 来接受上传的文件
public String dFileLoad(@RequestParam("dUploadFile") MultipartFile file,HttpServletRequest request){
try {
if(file.getSize()>0){
String filename = file.getOriginalFilename();
//限制文件上传的类型
if(filename.endsWith("jpg")||filename.endsWith(".doc")||filename.endsWith(".docx")){
File dir = new File("D:"+File.separatorChar+"temp");
if(!dir.exists()){
dir.mkdir();
}
System.out.println(dir.getAbsolutePath());
File mbfile= new File(dir.getAbsolutePath()+File.separatorChar+filename);
//将 file 复制给 mbfile
file.transferTo(mbfile);
}else {
request.setAttribute("filename", file.getOriginalFilename());
request.setAttribute("message1", "文件必须以 jpg或doc或docx开头");
return "fileNull";
}
}else{
request.setAttribute("filename", file.getOriginalFilename());
return "fileNull";
}
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return "model";
}
/**
*
* @param loginName : 用来创建在temp目录下 的子目录名
* @param files :接受文件数组
* @param request
* @return
*/
@RequestMapping("/duoFilesLoad")
//用 MultipartFile[] 来接受上传的多个文件
public String duoFilesLoade(@RequestParam("loginName") String loginName,@RequestParam("dUploadFile") MultipartFile[] files,HttpServletRequest request){
try {
File dir = new File("D:"+File.separatorChar+"temp"+File.separatorChar+loginName);
if(!dir.exists()){
dir.mkdirs();
}
boolean flag=true;
for (int i=0;i
MultipartFile file=files[i];
String filename = file.getOriginalFilename();
if(filename!=null && !"".equals(filename.trim())){
flag=false;
if(filename.endsWith("jpg")||filename.endsWith(".doc")||filename.endsWith(".docx")){
System.out.println(dir.getAbsolutePath());
File mbfile= new File(dir.getAbsolutePath()+File.separatorChar+filename);
//将 file 复制给 mbfile
file.transferTo(mbfile);
}else {
request.setAttribute("filename", file.getOriginalFilename());
request.setAttribute("message1", "文件必须以 jpg或doc或docx开头");
return "fileNull";
}
}
}
// 如果一个文件也没有上传
if(flag){
return "fileNull";
}
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return "model";
}
}