一、使用SmartUpload进行文件上传
导入JspSmartUpload.jar
private ServletConfig config;
@Override
public void init(ServletConfig config) throws ServletException {
// TODO Auto-generated method stub
super.init(config);
this.config=config;
}
String savePath = request.getSession().getServletContext()
.getRealPath("/upload");
File file = new File(savePath);
if (!file.exists()) {
file.mkdir();
}
SmartUpload smartUpload = new SmartUpload();
smartUpload.initialize(config, request, response);
smartUpload.setCharSet("utf-8");
try {
smartUpload.upload();
smartUpload.save(savePath);
} catch (Exception e) {
e.printStackTrace();
}
}
二、使用commens-fileupload进行文件上传
导入commons-fileupload-1.2.2.jar和commons-io-2.4.jar
String filePath = request.getSession().getServletContext()
.getRealPath("uploadImg/");
File file = new File(filePath);
if (!file.exists()) {
file.mkdir();//当文件 夹不存在时,创建
}
Detail detail = new Detail();
FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload sfu = new ServletFileUpload(factory);
List<FileItem> list = sfu.parseRequest(request);
Iterator<FileItem> it = list.iterator();
while (it.hasNext()) {
FileItem item = it.next();
if(item.isFormField()){
String fieldName = item.getFieldName();
if (fieldName.equals("title")) {
detail.setTitle(item.getString());
}else if(fieldName.equals("content")){
detail.setContent(item.getString("utf-8"));
}
}else{
File savaFile = new File(filePath,"图片名");
item.write(savaFile);
}
三、springmvc中使用MultipartFile进行多文件上传
导入commons-io-2.4.jar
@RequestMapping(value="/add",method=RequestMethod.POST) 自动绑定到MultipartFile对象里面,attach与表单file的name一致
public String add(@Validated User user,BindingResult bindingResult,@RequestParam MultipartFile[] attachs,HttpServletRequest request){
if(bindingResult.hasErrors()){ //多文件上传,前面必须加上@RequestParam(复杂属性)
return "add";
}
//指定文件上传目录
//String uploadPath = request.getSession().getServletContext().getRealPath("/statics/upload");
String uploadPath="d:/demo";
//System.out.println(attach.getOriginalFilename());
for (MultipartFile attach : attachs) {
if(attach!=null){
try {
File saveFile = new File(uploadPath+File.separator+attach.getOriginalFilename());
FileUtils.copyInputStreamToFile(attach.getInputStream(), saveFile);//自动创建upload文件
} catch (IOException e) {
e.printStackTrace();
}
}