文档章节

fileDown

小白N
 小白N
发布于 2017/08/01 16:53
字数 134
阅读 2
收藏 0

package com.adobe.sunTrust; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream;

import javax.servlet.http.HttpServletResponse;

import org.apache.felix.scr.annotations.Component; import org.apache.felix.scr.annotations.Property; import org.apache.felix.scr.annotations.Service; import org.osgi.framework.BundleContext; import org.osgi.service.component.ComponentContext; import org.slf4j.Logger; import org.slf4j.LoggerFactory;

@Component @Service @Property( name="scheduler.period", longValue = 10) public class FileDown implements Runnable { private Logger logger = LoggerFactory.getLogger(this.getClass());

private BundleContext bundleContext;

public void run() {
	logger.info("Running...");
}
protected void activate(ComponentContext ctx) {
	this.bundleContext = ctx.getBundleContext();
}
protected void deactivate(ComponentContext ctx) {
	this.bundleContext = null;
}

public void fileDown(String path,HttpServletResponse response){
	try {			
	    File file = new File(path);
	    String filename = file.getName();
	    filename.substring(filename.lastIndexOf(".") + 1).toUpperCase();
	    InputStream fis = new BufferedInputStream(new FileInputStream(path));
	    byte[] buffer = new byte[fis.available()];
	    fis.read(buffer);
	    fis.close();
	    response.reset();
	    response.addHeader("Content-Disposition", "attachment;filename=" + new String(filename.getBytes()));
	    response.addHeader("Content-Length", "" + file.length());
	    OutputStream toClient = new BufferedOutputStream(response.getOutputStream());
	    response.setContentType("application/octet-stream");
	    toClient.write(buffer);
	    toClient.flush();
	    toClient.close();
	    		    		    				    
	} catch (IOException ex) {
	     ex.printStackTrace();
	}	
}

}

© 著作权归作者所有

共有 人打赏支持
小白N
粉丝 0
博文 2
码字总数 358
作品 0
JSP、Struts2下载中文文件名乱码问题

方案一: 原来处理下载的代码如下: response.setHeader("Content-Disposition", "attachment; filename=" + java.net.URLEncoder.encode(fileName, "UTF-8")); 下载的程序里有了这句,一般在......

长平狐
2012/11/12
421
0
Cocos2d-x v3.8 beta0 发布,C++ 游戏开发引擎

Cocos2d-x v3.8 beta0 发布,下载地址:http://www.cocos2d-x.org/filedown/cocos2d-x-3.8beta0.zip 增强UI系统功能 【新增】RadioButton 和 RadioGroup控件 【新增】ScrollView/ListView 滚......

oschina
2015/08/20
2.2K
1
Cocos2d-x 3.3/2.2.6 发布,更多 3D 特性支持

Cocos2d-x 3.3 final 发布,我们建议你使用 NDK r10c 或者更新版本,因为它修复了 Android 5.0 的一些 bug。 下载地址:cocos2d-x 3.3 3.3 版本值得关注的改进: Size Modularization: autom...

oschina
2014/12/16
4.7K
8
Uliweb 0.2.2 发布,灵活易用的Python Web框架

Uliweb 0.2.2版本主要更新如下: 向 SortedDict 添加 clear() 函数 向 AddView, EditView 添加提交保护,缺省为不启动。它可以用来防止多次提交。但对于 前端建议再増加相关的措施,比如在提...

limodou
2013/12/06
1K
10

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周一乱弹 —— 鱼生不值得

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @瘟神灬念:分享新裤子的单曲《没有理想的人不伤心 (Remix版)》: 《没有理想的人不伤心 (Remix版)》- 新裤子 手机党少年们想听歌,请使劲儿戳...

小小编辑
9分钟前
2
3
arts-week10

Algorithm 905. Sort Array By Parity - LeetCode Review Who’s Afraid of the Big Bad Preloader? 一文读懂前端缓存 一个网络请求3个步骤:请求,处理,响应,而前端缓存主要在请求处响应这两步...

yysue
今天
4
0
00.编译OpenJDK-8u40的整个过程

前言 历经2天的折腾总算把OpenJDK给编译成功了,要说为啥搞这个,还得从面试说起,最近出去面试经常被问到JVM的相关东西,总感觉自己以前学的太浅薄,所以回来就打算深入学习,目标把《深入理...

凌晨一点
今天
5
0
python: 一些关于元组的碎碎念

初始化元组的时候,尤其是元组里面只有一个元素的时候,会出现一些很蛋疼的情况: def checkContentAndType(obj): print(obj) print(type(obj))if __name__=="__main__": tu...

Oh_really
昨天
6
2
jvm crash分析工具

介绍一款非常好用的jvm crash分析工具,当jvm挂掉时,会产生hs_err_pid.log。里面记录了jvm当时的运行状态以及错误信息,但是内容量比较庞大,不好分析。所以我们要借助工具来帮我们。 Cras...

xpbob
昨天
174
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部