public HttpServletResponse download(String path, HttpServletResponse response) {
try {
// path是指欲下载的文件的路径。
File file = new File(path);
// 取得文件名。
String filename = file.getName();
// 取得文件的后缀名。
String ext = 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
response.reset();
// 设置response的Header
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();
}
return response;
}
public void downloadLocal(HttpServletResponse response) throws FileNotFoundException {
// 下载本地文件
String fileName = "Operator.doc".toString(); // 文件的默认保存名
// 读到流中
InputStream inStream = new FileInputStream("c:/Operator.doc");// 文件的存放路径
// 设置输出的格式
response.reset();
response.setContentType("bin");
response.addHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\"");
// 循环取出流中的数据
byte[] b = new byte[100];
int len;
try {
while ((len = inStream.read(b)) > 0)
response.getOutputStream().write(b, 0, len);
inStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
public void downloadNet(HttpServletResponse response) throws MalformedURLException {
// 下载网络文件
int bytesum = 0;
int byteread = 0;
URL url = new URL("windine.blogdriver.com/logo.gif");
try {
URLConnection conn = url.openConnection();
InputStream inStream = conn.getInputStream();
FileOutputStream fs = new FileOutputStream("c:/abc.gif");
byte[] buffer = new byte[1204];
int length;
while ((byteread = inStream.read(buffer)) != -1) {
bytesum += byteread;
System.out.println(bytesum);
fs.write(buffer, 0, byteread);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
//支持在线打开文件的一种方式
public void downLoad(String filePath, HttpServletResponse response, boolean isOnLine) throws Exception {
File f = new File(filePath);
if (!f.exists()) {
response.sendError(404, "File not found!");
return;
}
BufferedInputStream br = new BufferedInputStream(new FileInputStream(f));
byte[] buf = new byte[1024];
int len = 0;
response.reset(); // 非常重要
if (isOnLine) { // 在线打开方式
URL u = new URL("file:///" + filePath);
response.setContentType(u.openConnection().getContentType());
response.setHeader("Content-Disposition", "inline; filename=" + f.getName());
// 文件名应该编码成UTF-8
} else { // 纯下载方式
response.setContentType("application/x-msdownload");
response.setHeader("Content-Disposition", "attachment; filename=" + f.getName());
}
OutputStream out = response.getOutputStream();
while ((len = br.read(buf)) > 0)
out.write(buf, 0, len);
br.close();
out.close();
}
如果生成一个Excel并下载
//导出
@RequestMapping("/outputExcelByActivity.ca")
public void outputExcelByActivity(HttpServletRequest request,HttpServletResponse response,
@RequestParam("ids") String ids) throws Exception{
response.addHeader("Content-Disposition", "attachment;filename=" + "outputExcel.xls");
response.setContentType("application/octet-stream");
String[] nums = ids.split(",");
Long[] ids1 = new Long[nums.length];
for (int i = 0; i < nums.length; ++i) {
ids1[i] = Long.valueOf(nums[i]);
}
List<MerchantOrder> list = activityManager.getOutputExcelOrder(ids1);
OrderExcelHelper.export(response.getOutputStream(),list);
}
分享到:
相关推荐
完整的文件上传和下载,直接拷入自己的action中即可运行,实测有效。
Java实现把字符串下载为txt文件的工具类。
Java导出SPSS格式文件是一项在数据处理领域常见的任务,主要应用于统计分析、社会科学和市场研究等领域。SPSS(Statistical Package for the Social Sciences)是一种强大的统计分析软件,它的数据文件通常具有.SAV...
java格式化文件,在myeclipse中点击windows--prefrence--输入code 导入格式化文件
### Java实现文件下载功能 在IT领域,尤其是Web开发中,文件下载是常见的需求之一,例如用户可能需要从服务器下载各种类型的文件,如文档、图片、压缩包等。本文将详细解析如何使用Java来实现这一功能,特别是针对...
Java 读取 Word、PDF 格式文档方法 Java 是一种广泛应用的编程语言,对文档操作是其重要的应用场景之一。本文将介绍 Java 如何读取 Word、PDF 格式文档的几种方法。 使用 Jacob Jacob 是一个桥接工具,连接 Java ...
Java生成RTF文档是编程领域中一个常见的需求,尤其在自动化报告、数据导出或集成办公软件功能时。RTF(Rich Text Format)是一种通用格式,可以被多种文字处理程序如Microsoft Word支持,使得文件在不同平台间具有...
1. 一键批量下载:只需启动程序,即可自动遍历并下载M3U8文件列表中的全部TS片段,极大地提升了工作效率,省去手动逐个下载的繁琐过程。 2. 智能排序:根据M3U8文件的顺序逻辑,精确无误地将各个TS文件按序下载,...
文件下载的工具类java代码,设置编码格式,避免下载中文乱码
在Java编程语言中,实现一个支持各种文件格式下载的功能是一项常见的任务。这涉及到网络I/O、多线程、文件处理等多个技术领域。标题"下载支持各种文件格式下载"表明我们需要关注的是一个能够处理不同文件类型(如....
Java API中文文档是Java开发者的重要参考资料,它详细阐述了Java平台标准版(Java SE)的各种类库、接口和方法。这两个版本,1.6和1.8,分别代表了Java发展过程中的两个重要里程碑。 首先,让我们关注"java_api_1.6...
这个“Java API文档中文版.zip”包含了一个.chm( Compiled HTML Help)文件,这是一种常见的帮助文档格式,方便用户离线浏览。在本文中,我们将深入探讨Java API的重要组成部分,以及如何利用这些文档进行开发。 ...
在IT领域,特别是Java开发中,处理文件下载和与用户交互是常见的需求,尤其是在Web应用程序中。本文将深入探讨如何使用Java实现文件下载,并在客户端弹出保存对话框,特别聚焦于Excel文件的处理,这在企业级应用中尤...
1. **网络请求**:首先,我们需要使用HTTP协议来从指定的URL下载文件。在Java中,我们可以使用`java.net.URL`和`java.net.URLConnection`类来建立与服务器的连接,并通过`java.io.InputStream`读取响应数据。另外,`...
在Java编程中,访问HTTPS网址并下载文件是一个常见的任务,特别是在需要安全传输敏感数据或确保数据完整性时。这里我们将深入探讨如何使用Java 1.7版本处理这一过程,包括处理SSL证书。 首先,理解HTTPS(超文本...
idea统一java格式化xml文件
通过webview打开html文件有可能编码不同就会乱码,所以要获取html文件的编码格式动态改变webview编码设置
在文件下载的过程中,我们通常会利用`HttpServletResponse`来设置响应头信息,如文件类型、编码方式等,以便浏览器能够正确地解析并下载文件。 ##### 2.2 FacesContext `FacesContext` 是JavaServer Faces (JSF) ...
在Java编程环境中,".au"格式的音频文件是一种常见的用于嵌入式应用的声音资源,尤其在开发Applet(Java小程序)时非常实用。这个标题暗示了我们正在讨论如何在Java项目中处理和播放.au格式的音频文件,这对于提升...
3. **jdk1.8.chw**: 文件格式chw可能是一个Windows的帮助文件,内容可能与JDK 1.8相关,但具体信息不足,可能需要打开文件查看详细内容。 4. **《阿里巴巴Java开发手册》(终极版).pdf**: 这是阿里巴巴公司发布的Java...