Struts 文件上传:
一、导包
commons-fileupload-1.2.2.jar
commons-io-2.2.jar
二、在form表单加enctype="multipart/form-data"属性
三、Action
private File pic=null;
private String picFileName;
//get/setter
public String add(){
String pName=null;
String newFileName=null;
if(null!=pic){
File f=pic;
pName=picFileName;
String rootPath=ServletActionContext.getServletContext().getRealPath("/pic/");
newFileName=rootPath+File.separator+pName;
System.out.println(newFileName);
File destFile=new File(newFileName);
try {
FileUtils.copyFile(f, destFile);
} catch (IOException e) {
e.printStackTrace();
this.addActionMessage("上传失败");
return ERROR;
}
}
this.addActionMessage("上传成功");
return "seccess";
}
Spring MVC文件上传:
@RequestMapping(value="/addOper",method=RequestMethod.POST)
public String addOper(@Validated User user,BindingResult bindingResult,
@RequestParam MultipartFile[] files,HttpServletRequest request){
list.put(user.getId(), user);
if(bindingResult.hasErrors()){
return "userAdd";
}
//指定上传位置
String filePath = request.getSession().getServletContext().getRealPath("/static/upload/");
/*System.out.println(files.getOriginalFilename());
System.out.println(files.getContentType());
System.out.println(files.getName());*/
try {
for(MultipartFile file:files){
if(!file.isEmpty()){
File saveFile=new File(filePath+File.separator+file.getOriginalFilename());
FileUtils.copyInputStreamToFile(file.getInputStream(), saveFile);
}
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return "redirect:/user/list";
}
文件下载:
Action
private String downFileName;
private InputStream inputStream;
//get/setter
public String downFilw(){
File file=new File(downFileName);
downFileName=file.getName();
try {
inputStream=new FileInputStream(file);
} catch (FileNotFoundException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
return "success";
}
Struts.xml
<action name="downFilw" class="standardAction" method="downFilw">
<result type="stream">
<param name="inputName">inputStream</param>
<param name="contentDisposition">attachment;downFileName="${downFileName}"</param>
<param name="contentType">application/octet-stream</param>
<param name="bufferSize">1024</param>
</result>
</action>
页面
<s:a href="downFilw?downFileName=%{#itert.package_path}">下载</s:a>