struts2文件下载及文件上传

一、文件下载

struts.xml配置代码

<action name="download" class="com.srt.vas.cs.action.RecordListAction" method="download"/>

 

public String download() throws Exception {	
		response = ServletActionContext.getResponse();
		response.setContentType("application/x-msdownload");
		response.setHeader("Content-Disposition","attachment;filename=customers.xls"); 
	    OutputStream out = null; 
	    FileInputStream in = null; 
	    try { 
	    	String path = "/WEB-INF/classes/template/customers.xls";
	    	out  = ServletActionContext.getResponse().getOutputStream(); 
	        in = new FileInputStream(ServletActionContext.getServletContext().getRealPath(path)); 
	       
	        byte[] buf = new byte[4096]; 
	        int i = 0; 
	        while((i = in.read(buf)) > 0) { 
	        	out.write(buf, 0, i); 
	        } 
	        out.flush(); 
	    } 
	    catch(Exception e) { 
	       e.printStackTrace();
	    } 
	    finally { 	
	    	if(in != null) {
	    		in.close(); 
	    	}
	    	if(out != null) {
	    		out.close();
	    	}	         	        
	    } 
		return null;
	}

 

二、文件上传
private File doc;   
    private String fileName;   
    private String contentType;
    public void setDoc(File file) {   
        this.doc = file;   
    }   
       
    public void setDocFileName(String fileName) {   
        this.fileName = fileName;   
    }   
       
    public void setDocContentType(String contentType) {   
        this.contentType = contentType;   
    }

	public String upload() throws Exception {	
		String dir = ServletActionContext.getServletContext().getRealPath("/temp");   
        if(!new File(dir).exists()) {
        	new File(dir).mkdirs();
        }        	
        File target = new File(dir, "customers.xls");              
        FileUtils.copyFile(doc, target);
		return SUCCESS;
	}

//在页面中加入
<file name="doc" size="60" cssclass="t_input"></file>

转载于:https://my.oschina.net/u/661273/blog/359891

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值