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
}
查看全文
相关阅读:
String常用方法
测试
mongo aggregate group, group使用
jquery ajax封装添加默认错误提示
js时间格式化
本地项目导入远程git仓库
java设计模式:适配器模式
mysql if示例
hibernate指定查询字段
js window resize延时
原文地址:https://www.cnblogs.com/liuzhengdao/p/1580000.html
最新文章
text多条件过滤gf_condition
dataWindow实现无控件左右内容的移动时去重
Android bp
Android aidl总结
framework添加按键及基本定位
Error:Execution failed for task ':app:clean'. > Unable to delete directory: ***/app/build/generated/***
Mac下nginx安装和配置
redis安装配置
git 的安装
Android 增量更新
热门文章
编译和使用bsdiff
ssh key 生成
单例设计模式 Singleton
代理设计模式
工厂设计模式
抽象类的定义与使用
Java类(多项1对多映射)
Java类(1对多)
简单Java类深入
this关键字
Copyright © 2011-2022 走看看