zoukankan
html css js c++ java
How to download a file
Code
1
public
void
mDownload()
2
{
3
try
4
{
5
Map params
=
FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap();
6
String documentId
=
(String)params.get(
"
documentId
"
);
7
if
(main.isNum(documentId)
==
true
)
8
{
9
Query query
=
main.session.getNamedQuery(
"
upload.selectFileById
"
);
10
query.setParameter(
"
id
"
, documentId);
11
List list
=
query.list();
12
String userId,oldName,fileName;
13
if
(list.size()
>
0
)
14
{
15
Object obj[]
=
(Object[])list.get(
0
);
16
userId
=
String.valueOf(obj[
0
]);
17
oldName
=
String.valueOf(obj[
1
]);
18
fileName
=
String.valueOf(obj[
2
]);
19
//
20
if
(main.getFileType(oldName).equals(
"
.nothing
"
))
21
oldName
=
oldName
+
main.getFileType(fileName);
22
//
get the OS name
23
String osName
=
System.getProperty(
"
os.name
"
);
24
String storedir
=
""
;
25
if
(osName
==
null
)
26
osName
=
""
;
27
if
(osName.toLowerCase().indexOf(
"
win
"
)
!=
-
1
)
28
storedir
=
url
+
userId
+
"
\\
"
;
29
else
30
storedir
=
url2
+
userId
+
"
/
"
;
31
FacesContext ctx
=
FacesContext.getCurrentInstance();
32
ctx.responseComplete();
33
//
String contentType = "application/octet-stream;charset=utf-8";
34
String contentType
=
"
application/x-download
"
;
35
HttpServletResponse response
=
(HttpServletResponse) ctx.getExternalContext().getResponse();
36
response.setContentType(contentType);
37
StringBuffer contentDisposition
=
new
StringBuffer();
38
contentDisposition.append(
"
attachment;
"
);
39
contentDisposition.append(
"
filename=\
""
);
40
contentDisposition.append(oldName);
41
contentDisposition.append(
"
\
""
);
42
response.setHeader(
"
Content-Disposition
"
,
new
String(contentDisposition.toString().getBytes(System.getProperty(
"
file.encoding
"
)),
"
iso8859_1
"
));
43
ServletOutputStream out
=
response.getOutputStream();
44
byte
[] bytes
=
new
byte
[
0xffff
];
45
InputStream is
=
new
FileInputStream(
new
File(storedir
+
fileName));
46
int
b
=
0
;
47
while
((b
=
is.read(bytes,
0
,
0xffff
))
>
0
)
48
{
49
out.write(bytes,
0
, b);
50
}
51
is.close();
52
ctx.responseComplete();
53
}
54
}
55
}
catch
(Exception ex)
{ex.printStackTrace();}
56
}
查看全文
相关阅读:
Redis数据类型之字符串String
Redis数据类型之列表List
hdu 2066 一个人的旅行
CDOJ 1221 Ancient Go
如何避免javascript中的冲突
利用锚点制作简单索引效果
函数中的私有变量和特权方法
Linux中常用命令cat
java -jar参数运行方式设置classpath
Linux中的数据重定向
原文地址:https://www.cnblogs.com/liuzhengdao/p/1580000.html
最新文章
莫比乌斯反演
乘法逆元
网络流—最大流(Edmond-Karp算法)
HDU 1698 Just a Hook (线段树)
线段树
筛选法求素数
快速幂取模和快乘取模
Maven的使用
tomcat与maven的安装与使用
mysql jdbc的使用
热门文章
mysql-server/mysql-client区别
debian查看自启动列表
安装debian系统的配置问题
chapter16:例行性工作(crontab)之二:循环执行的例行性工作调度
VNC
android好blog发现
android记录
全面理解java异常机制
从源码解析LinkedList集合
MySQL中使用trim()删除两侧字符
Copyright © 2011-2022 走看看