Java获取文件路径后文件下载

$.download = function(url, method, filedir, filename){
    $('<form action="'+url+'" method="'+(method||'post')+'">' +  // action请求路径及推送方法
                '<input type="text" name="filedir" value="'+filedir+'"/>' + // 文件路径
                '<input type="text" name="filename" value="'+filename+'"/>' + // 文件名称
            '</form>')
    .appendTo('body').submit().remove();
};

//获取文件路径(创建文件),对文件进行下载
function report(id){
	$.ajax({
		type : "POST",
		url : "${ctx}/ai/park/houseContract/importWord",
		dataType : "json",
		contentType: "application/x-www-form-urlencoded; charset=utf-8", 
		data : {id : id},
		cache : false,
		success : function(result) {
			var data = result[0];
			log(data);
			if (data.success == true) {
				//调用下载方法
				$.download('${ctx}/ai/park/houseContract/downloadFile', 'post', "", data.filepath); // 下载文件
			} else {
				js.alert(data[0].msg, {icon: 2}, function(){});
			}
		}
	})	
}
	public void download(HttpServletRequest request, HttpServletResponse response){
		InputStream ins = null;
        BufferedInputStream bins = null;
        OutputStream outs = null;
        BufferedOutputStream bouts = null;
        String file_name = request.getParameter("filename").trim(); // 文件下载      
        try {
            if (!"".equals(file_name)) {
                File file = new File(file_name);
                String[] strs = file_name.split("/");
                String realFileName = strs[strs.length-1];
                if (file.exists()) {
                    ins = new FileInputStream(file_name);
                    bins = new BufferedInputStream(ins);
                    outs = response.getOutputStream();
                    bouts = new BufferedOutputStream(outs);
                    response.setContentType("application/x-download");
                    response.setHeader(
                            "Content-disposition",
                            "attachment;filename="
                                    + URLEncoder.encode(realFileName, "UTF-8"));
                    int bytesRead = 0;
                    byte[] buffer = new byte[8192];
                    while ((bytesRead = bins.read(buffer, 0, 8192)) != -1) {
                        bouts.write(buffer, 0, bytesRead);
                    }
                    bouts.flush();
                } else {
                    throw new Exception("下载的文件不存在!");
                }
            } else {
                throw new Exception("导出文件时发生错误!");
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
				if (null != ins) {
				    ins.close();
				}
				if (null != bins) {
				    bins.close();
				}
				if (null != outs) {
				    outs.close();
				}
				if (null != bouts) {
				    bouts.close();
				}
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
        }
        //我用的是创建文件对文件进行下载,需要对创建的文件进行删除
        File file = new File(file_name);
        if (!"".equals(file_name)) {
             if (file.exists() && file.isFile()) {
                 if (file.delete()) {
                     System.out.println("删除单个文件" + file_name + "成功!");       
                 } else {
                     System.out.println("删除单个文件" + file_name + "失败!");  
                 }
             } else {
                 System.out.println("删除单个文件失败!" + file_name + "不存在!");
             }
        } else {
        	 System.out.println("删除文件时发生错误!");
        } 
	}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值