文件下载精要部分
2014-07-24 15:39
46 查看
//我这里只记录重要的代码,不重要的我就没贴过来了
if(getResponse().containsHeader("ContentType"))
{
getResponse().setHeader("ContentType","application/octet-stream");
}
else
{
getResponse().addHeader("ContentType","application/octet-stream");
}
if(getResponse().containsHeader("Content-Disposition"))
{
getResponse().setHeader("Content-Disposition","attachment;FileName="+fileName+"."+suffix);
}
else
{
getResponse().addHeader("Content-Disposition","attachment;FileName="+fileName+"."+suffix);
}
ServletOutputStream os;
//realPath是我经过uedit提交的时候处理的字段,这个当浏览者用户拿到东西后根据情况而定
File file = new File("realPath");
if(file.isFile()){
FileInputStream fis = null;
try {
fis = new FileInputStream(file);
} catch (FileNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
BufferedInputStream bis = new BufferedInputStream(fis);
int len;
try {
os = getResponse().getOutputStream();
byte[] b = new byte[len = bis.available()];
if(len != bis.read(b, 0, len))
{
}
os.write(b);
os.close();
getResponse().flushBuffer();
}
catch (IOException e)
{
}
}
我做的这块是UEDIT自带的上传功能,把上传的文件经过substring处理之后包括指入后台的方法和指向的文件路径与文件名,存入数据库,当用户读取后会调用后台的这个方法,所以解决了直接打开文件的不当之处
要决是告诉台前用户这是一个文件,不能打开。主要是在response.setHeader这一块,然后把response.getOutputStream写入文件即可
if(getResponse().containsHeader("ContentType"))
{
getResponse().setHeader("ContentType","application/octet-stream");
}
else
{
getResponse().addHeader("ContentType","application/octet-stream");
}
if(getResponse().containsHeader("Content-Disposition"))
{
getResponse().setHeader("Content-Disposition","attachment;FileName="+fileName+"."+suffix);
}
else
{
getResponse().addHeader("Content-Disposition","attachment;FileName="+fileName+"."+suffix);
}
ServletOutputStream os;
//realPath是我经过uedit提交的时候处理的字段,这个当浏览者用户拿到东西后根据情况而定
File file = new File("realPath");
if(file.isFile()){
FileInputStream fis = null;
try {
fis = new FileInputStream(file);
} catch (FileNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
BufferedInputStream bis = new BufferedInputStream(fis);
int len;
try {
os = getResponse().getOutputStream();
byte[] b = new byte[len = bis.available()];
if(len != bis.read(b, 0, len))
{
}
os.write(b);
os.close();
getResponse().flushBuffer();
}
catch (IOException e)
{
}
}
我做的这块是UEDIT自带的上传功能,把上传的文件经过substring处理之后包括指入后台的方法和指向的文件路径与文件名,存入数据库,当用户读取后会调用后台的这个方法,所以解决了直接打开文件的不当之处
要决是告诉台前用户这是一个文件,不能打开。主要是在response.setHeader这一块,然后把response.getOutputStream写入文件即可
相关文章推荐
- 解决IE中部分文件格式不能下载的问题(附MIME大全)
- 文件下载和部分序列号
- struts2 文件上传和下载,以及部分源代码解析
- springMVC高级部分(数据校验,数据错误回显(自定义格式错误显示),拦截器,异常处理,文件上传,文件下载,springmvc运行流程以及springmvc和struts2对比)
- git下载部分文件代码的方法
- 解决http下载部分文件格式(如*.pdb)不能正常下载的问题
- 如何下载github项目中的部分文件(文件夹)
- tips: github 下载文件夹 |部分下载| 单个文件下载解决方案
- java通过服务器下载文件(这是根据我自己当时业务所需写的,如有需要请自己借鉴拷贝必要部分)
- struts2 文件上传和下载,以及部分源码解析
- 学习 PHP,第 1 部分: 注册帐户、上传需要批准的文件、并查看和下载已批准的文件
- 第一天-解决了轮播图片不能显示和部分文件不能下载两个问题
- 如何下载github项目中的部分文件(文件夹)
- android开发 更新下载apk部分机型文件写入失败(Permission denied)
- asp防止firefox下载文件的时候丢失部分文件名
- android 下载流文件的部分数据及断点续传的关键点header Range
- Android文件下载含服务器端(客户端 UI界面异步请求部分)三
- git下载github分支代码的部分文件
- php 下载文件,考虑到各种格式,解决下载时部分出现文件损坏的问题
- 排查中,windows部分浏览器下载文件的后缀名被更改