Java文件下载的几种方式
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();
}
分享到:
相关推荐
在线文档下载器是一种工具软件,专门设计用于帮助用户免费下载来自特定平台的文档,如百度文库和豆丁网。这种下载器的便利之处在于它无需用户注册或登录即可使用,简化了获取文档的过程,提高了效率。对于经常需要...
《Fish文库文档下载工具详解》 在数字化时代,网络上的知识资源日益丰富,文档分享网站成为获取学术、技术及各类信息的重要平台。然而,这些网站通常限制了文档的直接下载,用户只能在线预览,这给需要离线阅读或...
萝卜头文档下载器是一款Windows端的免费文档下载工具,可以帮助我们下载各种常用文档,降低获取成本!软件下载好后无需安装,就可以直接打开使用。 界面非常的干净整洁,支持下载的范围也非常广泛,支持范文、协议书...
冰点文档下载器是一款实用工具,专为解决网络上各种文档平台上的资源下载问题而设计。它能够帮助用户轻松获取百度文库、道客巴巴、豆丁网以及电器天下等平台上的文档,使得原本需要付费或者积分才能查看的文档变得可...
【原创力文档下载工具】利用Python下载原创力文档是一个典型的Web爬虫应用场景,它涉及到Python编程语言、网络请求、文件处理以及可能的HTML解析技术。在这个项目中,开发者使用Python来自动化获取并下载原创力平台...
豆丁文档下载器是一款专为用户设计的工具,主要用于免费下载豆丁网上的各类文档资源。豆丁网是一个在线文档分享平台,拥有大量的学习资料、专业报告、课件、论文等,但通常需要付费才能下载。这款下载器的出现,为...
在线文档下载神器是一种工具,主要用于帮助用户方便地下载并转换在线文档,如百度文档等平台上的资源。这类神器通常能够解决互联网上许多文档资源只提供在线预览而不允许直接下载的问题,让用户可以将这些文档保存到...
针对这一问题,一款名为《豆丁文档下载器2010.0529》的软件应运而生,它以其独特的方式解决了用户下载豆丁网文档的困难。 豆丁文档下载器2010.0529版本的出现,对于那些需要从豆丁网获取文档的用户来说,无疑是一大...
豆丁文档下载破解器. 豆丁文档下载破解器. 豆丁文档下载破解器.
《docin文档下载器20090818》是一款专为解决豆丁网文档下载问题而设计的工具。豆丁网作为一个知名的中文文档分享平台,拥有海量的用户上传资料,涵盖教育、科技、文学等多个领域。然而,部分高质量的文档在豆丁网上...
飞书文档下载工具,解除飞书文档复制限制
豆丁文档下载破解器是个人制作的,下载豆丁文档是免费的,下载后只能转存成PDF格式的,软件界面中的精度数值越大,下载后的PDF文档容量越大,也就越清晰
【百度在线文档下载工具】是一种专门用于下载百度平台上存在积分限制的在线文档的实用软件。在互联网上,尤其是教育和专业领域,百度文档因其丰富的资源库而被广泛使用。然而,许多高质量的文档需要用户拥有一定的...
豆丁文档下载工具豆丁文档下载工具豆丁文档下载工具豆丁文档下载工具豆丁文档下载工具豆丁文档下载工具豆丁文档下载工具豆丁文档下载工具豆丁文档下载工具豆丁文档下载工具豆丁文档下载工具豆丁文档下载工具豆丁文档...
豆丁文档下载器是一款专为用户设计的工具,主要用于从豆丁网下载各种电子文档。豆丁网作为国内知名的在线文档分享平台,汇集了大量专业报告、学习资料、课件、学术论文等资源,但其部分文档需要付费才能查看或下载。...
文档下载工具是一款非常实用的软件,它允许用户轻松地从各种在线文库平台,如豆丁、百度文库和360文库等,下载所需的文档,并将其转换为PDF格式,便于阅读和保存。这款工具简化了以往在这些平台上获取文档的繁琐过程...
文档下载器是一款非常实用的工具,它解决了用户在下载诸如百度文库等平台上的文档时遇到的积分限制问题。这些平台通常需要用户积累积分才能下载文档,而文档下载器则提供了一个便捷的途径,允许用户免费获取PDF格式...
对于一些高质量的在线文档,特别是百度文库中的收费文档,用户往往需要支付一定的费用才能完整阅读或下载。本文将详细介绍一种针对百度文库收费文档的下载方法,帮助用户在合规的前提下,有效地管理和保存所需的资料...