文件上传及下载

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>

猜你喜欢

转载自my.oschina.net/u/3569028/blog/1504718