通过流下载附件,使用struts2下载附件通过流下载附件,使用struts2下载附件
文章分类:Java编程
1、通过流下载附件
Java代码
//文件下载
public String fileDown(){
HttpServletResponse response = ServletActionContext.getResponse();
try {
String path=session.getServletContext().getRealPath("/");
filename = new String( filename.getBytes("...
通过流下载附件,使用struts2下载附件
文章分类:Java编程
1、通过流下载附件
Java代码
//文件下载
public String fileDown(){
HttpServletResponse response = ServletActionContext.getResponse();
try {
String path=session.getServletContext().getRealPath("/");
filename = new String( filename.getBytes("ISO-8859-1") , "UTF-8");
String downname = filename.split("---")[2];
String url = path+"doc/affix/"+tba.getIassistnoticeid()+"/"+filename;
OutputStream out = response.getOutputStream();
response.reset();
// 指定返回的是一个不能被客户端读取的流,必须被下载
response.setContentType("application/octet-stream;charset=UTF-8");
// 添加头信息,为"文件下载/另存为"对话框指定默认文件名
response.setHeader("Content-disposition", "attachment; filename="+URLEncoder.encode(downname,"UTF-8")); //URLEncoder.encode转换,解除文
件名乱码
// 添加头信息,指定文件大小,让浏览器能够显示下载进度
//response.addheader("content-length", url.length.tostring());
FileInputStream fis=new FileInputStream(url);
int i=-1;
while((i=fis.read())!=-1){//读文件
out.write(i); //写文件
}
out.flush();out.close();fis.close();
} catch (IOException e) {
e.printStackTrace();
}finally{
return null;
}
}
//文件下载
public String fileDown(){
HttpServletResponse response = ServletActionContext.getResponse();
try {
String path=session.getServletContext().getRealPath("/");
filename = new String( filename.getBytes("ISO-8859-1") , "UTF-8");
String downname = filename.split("---")[2];
String url = path+"doc/affix/"+tba.getIassistnoticeid()+"/"+filename;
OutputStream out = response.getOutputStream();
response.reset();
// 指定返回的是一个不能被客户端读取的流,必须被下载
response.setContentType("application/octet-stream;charset=UTF-8");
// 添加头信息,为"文件下载/另存为"对话框指定默认文件名
response.setHeader("Content-disposition", "attachment; filename="+URLEncoder.encode(downname,"UTF-8")); //URLEncoder.encode转换,解除文
件名乱码
// 添加头信息,指定文件大小,让浏览器能够显示下载进度
//response.addheader("content-length", url.length.tostring());
FileInputStream fis=new FileInputStream(url);
int i=-1;
while((i=fis.read())!=-1){//读文件
out.write(i); //写文件
}
out.flush();out.close();fis.close();
} catch (IOException e) {
e.printStackTrace();
}finally{
return null;
}
}
2、使用struts2下载附件Java代码
//文件下载
public String fileDown(){
mimeType = session.getServletContext().getMimeType(filename);
return "filedown";
}
/**
* 封装处理文件名
*/
public void setFilename(String filename) {
try {
this.filename = new String(filename.getBytes("ISO8859-1"),"UTF-8");
downname = filename.split("---")[2];
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
public String getFilename() {
try {
return new String(filename.getBytes(),"ISO8859-1");
} catch (UnsupportedEncodingException e) {
return this.filename;
}
}
public String getMimeType() {
return mimeType;
}
public InputStream getInStream() {
String path=session.getServletContext().getRealPath("/");
String url = path+"doc/affix/"+tba.getIassistnoticeid()+"/"+filename;
try {
inStream = new FileInputStream(url);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
if (inStream == null) {
inStream = new ByteArrayInputStream("Sorry,File not
found !".getBytes());
}
return inStream;
}
public String getDownname() {
return downname;
}
public void setDownname(String downname) {
this.downname = downname;
}
//文件下载
public String fileDown(){
mimeType = session.getServletContext().getMimeType(filename);
return "filedown";
}
/**
* 封装处理文件名
*/
public void setFilename(String filename) {
try {
this.filename = new String(filename.getBytes("ISO8859-1"),"UTF-8");
downname = filename.split("---")[2];
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
public String getFilename() {
try {
return new String(filename.getBytes(),"ISO8859-1");
} catch (UnsupportedEncodingException e) {
return this.filename;
}
}
public String getMimeType() {
return mimeType;
}
public InputStream getInStream() {
String path=session.getServletContext().getRealPath("/");
String url = path+"doc/affix/"+tba.getIassistnoticeid()+"/"+filename;
try {
inStream = new FileInputStream(url);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
if (inStream == null) {
inStream = new ByteArrayInputStream("Sorry,File not
found !".getBytes());
}
return inStream;
}
public String getDownname() {
return downname;
}
public void setDownname(String downname) {
this.downname = downname;
}
struts2配置文件 Xml代码
attachment;filename="${downname}"
${mimeType}
inStream
本文档为【通过流下载附件,使用struts2下载附件】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。