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);
分享到:
相关推荐
Java Web 下载文件 在Java Web开发中,文件下载是一个常见的功能,比如用户需要下载网站上的图片、文档或任何其他类型的资源。这个过程涉及到HTTP协议、服务器端处理以及客户端交互。下面我们将深入探讨如何实现这...
### 知识点一:Java中实现文件下载的基本原理 在Java Web开发中,实现文件下载功能是常见需求之一。该功能通常涉及通过HTTP协议将服务器上的文件传输给客户端,并提示用户进行下载。在Java中,可以利用`Servlet`...
标题“java-remote-file-download.rar_file java_remote”表明我们关注的是一个使用Java处理远程文件下载的项目。这个项目可能包含了一个名为“java-remote-file-download.java”的源代码文件,这个文件将演示如何...
5. **file.jsp**:这是一个JSP(Java Server Pages)文件,是Java Web应用中常用的视图层组件。在这里,它可能包含了Ajax请求的发起代码,通过JavaScript(可能使用jQuery或Fetch API)向FileAction发送请求,请求...
在Android应用开发中,有时我们需要实现一个功能,即使用系统内置的`DownloadManager`服务来下载APK文件,并在下载完成后自动提示用户进行安装。这个功能对于应用的更新或者安装外部资源非常实用。本文将详细讲解...
标题中的"HttpGet.rar_httpget_java HttpGet_java download save"表明这是一个关于使用Java实现HttpGet方法进行文件下载并保存的示例。HttpGet是HTTP协议中的一个请求方法,常用于从服务器获取资源。在这个项目中,...
`FileAccess.java`则可能是用于文件I/O操作的类,它可能包含读写文件、检查文件是否存在、创建目录等方法。 这个项目的核心思想是通过多线程并行下载,将大文件分割成多个小块,每个线程负责一块的下载,这样可以...
Java Language Conversion Assistant is a tool that automatically converts existing Java-language code into Visual C#® Quick Info File Name:VS7.1-KB819018-X86.exe Download Size:10092 KB Date Published:...
本主题“FileUploadAndDownLoad”将深入讲解如何使用JSP(JavaServer Pages)技术来实现这一功能。JSP是一种基于Java的服务器端脚本语言,它允许开发人员在HTML页面中嵌入Java代码,从而动态生成网页内容。 首先,...
DownloadManager downloadManager = (DownloadManager) getSystemService(Context.DOWNLOAD_SERVICE); ``` 3. 创建下载请求: 创建一个`DownloadManager.Request`对象,设置下载URL、目标存储位置等参数。 ```...
本知识点主要围绕“url download File”这一主题展开,介绍如何通过编程从互联网上获取文件并将其保存到本地。 首先,我们需要了解URL(Uniform Resource Locator),它是统一资源定位符,是互联网上的资源的唯一...
Java的`java.io.File`类提供了删除文件的方法: ```java import java.io.File; public class FileOperations { public static void deleteFile(String filePath) { File file = new File(filePath); if (file....
In addition to excellent content, this book includes licenses to two Java web components from BrainySoftware.com. You receive a full license of the Programmable File Download component for commercial ...
标题“FileUpLoadAndDownLoad”和描述“FileUpLoadAndDownLoad上传”都直指这一主题。文件上传允许用户将本地计算机上的文件传输到服务器,而下载则是相反的过程,服务器上的文件被获取并保存到用户的设备上。在标签...
import java.nio.file.Paths; @Controller @RequestMapping("/download") public class FileDownloadController { @GetMapping("/{filename}") public ResponseEntity<?> handleFileDownload(@PathVariable ...
1. 用户在前端页面(HTML表单)上选择文件,通过`<input type="file">`标签。 2. 表单使用`enctype="multipart/form-data"`指定MIME类型,以便传输文件数据。 3. 用户提交表单后,服务器端的Servlet接收到请求,使用...
在Java编程中,文件下载是常见的需求,例如从服务器向客户端传输文件,或者在应用程序内部获取网络资源。本文将详细探讨Java实现文件下载的几种主要方法。 ### 1. 使用HttpServletResponse #### 1.1 设置Content-...
File downloadFile = new File("/path/to/download/file.txt"); OutputStream outputStream = new FileOutputStream(downloadFile); ftpClient.retrieveFile("/path/to/remote/file.txt", outputStream); ...
String destFile = "/path/to/download/file"; minioClient.getObject( GetObjectArgs.builder().bucket(bucketName).object(objectName).destination(destFile).build()); ``` 七、查询对象状态 通过`statObject...
在处理图片上传时,通常会使用`@RequestParam("file") MultipartFile file`来接收上传的文件。 2. **存储策略**: 图片上传后,需要选择合适的存储策略。这可以是本地文件系统、数据库(如BLOB类型)或云存储服务...