1 添加apache commons-io包
protected void download(String fileName, String fileExtension, InputStream stream) throws Exception {
HttpServletRequest request = getRequest();
HttpServletResponse response = getResponse();
byte[] fileBytes = IOUtils.toByteArray(stream);
String userAgent = request.getHeader("USER-AGENT");
userAgent = userAgent == null ? "" : userAgent.toUpperCase();
response.setContentType("application/x-download");
// 根据不同浏览器进行文件名编码
if (userAgent.indexOf("MSIE") != -1) {
fileName = URLEncoder.encode(fileName, "UTF-8");
}else if(userAgent.indexOf("MOZILLA") != -1){
fileName = "=?UTF-8?B?" + new BASE64Encoder().encode((fileName.getBytes("UTF-8"))) + "?=";
}
response.addHeader("Content-Disposition", "attachment;filename=" + fileName + "." + fileExtension);
response.addHeader("Content-Length", String.valueOf(fileBytes.length));
response.addHeader("Content-Transfer-Encoding", "binary");
response.setContentType("application/octet-stream");
response.getOutputStream().write(fileBytes);
}
分享到:
相关推荐
很好用的代码,可以作为android开发文件管理相关的资料。
动态连接数据库文件包括功能强大的sqlhelper文件,使用很方便,我们公司的开发必要代码文件,使用时直接添加即可使用!
此存储库包含与 AXIOM Beta 硬件相关的所有信息和文件。 AXIOM Beta是由apertus°制造的开源、开放硬件、专业级数码胶片相机。它被设计成模块化的,例如可互换的传感器前端等,并支持以 4K 分辨率录制。 相机结构...
网络文件下载程序-基于Java的源代码,给定一个文件的网络URL地址,本程序将从该地址获取(下载)文件,java环境的手机,可直接运行本程序,具体代码: in = (InputStream) Connector.openInputStream(url); //...
VC++基于socket传输文件服务端代码,并且加入了可配置选项,根据配置文件读取相关配置
SensorsCalibration 工具箱 v0.1 SensorsCalibration 是一个简单的标定工具箱和开源项目,主要用于自动驾驶中的传感器标定。 介绍 传感器校准是任何自主系统及其组成...更多详情、使用方法,请下载后阅读README.md文件
本书立足于μClinux源代码,通过分析其中的Make文件,以及与这些Make文件密切相关的部分源代码,给出一种在源代码水平上理解系统目标代码生成过程和生成原理的方法。这不仅是一本关于 Make文件编写、学习、组织、...
一款串口文件传输系统的源代码。
大文件的快速下载,经测试在100M带宽的网络下,下载一个40M的文件,不超过两秒钟,当然还得根据自己电脑的配置来讲。 其他说明: 文件如果特别小,而自己网络又非常好的情况下,不建议使用线程池进行下载,因为...
世界语言代码,比如中国是zh-cn,对应的国家名字也有相关的字段
RGBDS 包含 Game Boy硬件定义 的文件_Assembly_代码_相关文件_下载
此目录包含库的源代码,用于构建基于 Semtech LoRa SX1302 集中器芯片(又名集中器)的网关。编译后,所有代码都包含在 libloragw.a 文件中,该文件将被静态链接(即...更多详情、使用方法,请下载后阅读README.md文件
使用matlab批量下载网站上的文件-MatlabUrlDownloadToFile.m 前几天美国数学建模成绩出了,我们按照网址下载了自己的证书,另外想看看学校今年的获奖情况,由于学校的参赛队伍数众多,一个一个下载证书再统计显得...
tm8-sdcc-示例 在 Linux 中使用 SDCC 的一些 STM8 微控制器(STM8S103 和 STM8S003)的一些示例代码。 此存储库包含连接到 STM8 微控制器板的某些组件和设备的示例...更多详情、使用方法,请下载后阅读README.md文件
激光雷达的Matlab基本代码,这是一种通过照亮目标来测量距离的 遥感技术_MATLAB_代码_相关文件_下载
使用热像仪自动测量人员体温的代码。可用于发热症状的自动早期筛查 描述 该软件首先使用现成的身体姿势检测器检测人,然后提取测量温度的面部位置。...更多详情、使用方法,请下载后阅读README.md文件
struct从 SVD 文件生成 Rust 寄存器映射 ( s) 支持的最低 Rust 版本 (MSRV) 生成的代码保证可以在稳定的 Rust 1.60.0 及更高版本上编译。 如果您在任何高于 1.60.0 ...更多详情、使用方法,请下载后阅读README.md文件
在此存储库中,为某些应用程序提供了微控制器代码。应使用 Arduino IDE 和 CCS(Code Composer Studio-德州仪器)等环境 dht11_MSP430G2553 包含将 MSP430 与 DHT11 ...更多详情、使用方法,请下载后阅读README.md文件
不包含ts类型定义部分和接口文件
这是HC-SR04超声波测距传感器。这款经济型传感器提供 2 厘米至 400 厘米的非接触式测量功能,测距精度可达 3 毫米。 HC-SR04 上只有四个引脚需要担心:VCC(电源)、...更多详情、使用方法,请下载后细读README.md文件