第一种方法试过了,不行。
String szHref=request.getParameter("Href");
String path=request.getRealPath(""); //新建一个SmartUpload对象
SmartUpload su = new SmartUpload();
//初始化
su.initialize(pageContext);
//设定contentDisposition为null以禁止浏览器自动打开文件,
//保证点击链接后是下载文件。若不设定,则下载的文件扩展名为
//doc时,浏览器将自动用word打开它。扩展名为pdf时,
//浏览器将用acrobat打开。
su.setContentDisposition(null);
//下载文件
//{{
//如果不用如下的,则response.getWriter(),因为这个方法是和response.getOutputStream()相冲突
//html这样的文档不能下载。
out.clear();
out = pageContext.pushBody();
//}}
String oFileName = new String(szHref.getBytes("gb2312"),"iso8859-1");
su.downloadFile(path+"\\DB\\UpLoad\\"+szHref,null,oFileName);
第二种方法 也不行。 //关于文件下载时采用文件流输出的方式处理:
response.reset();//可以加也可以不加
response.setContentType("application/x-download");
String filedownload = "文件的物理路径+文件名";
String filedisplay = "下载文件名";
response.addHeader("Content-Disposition","attachment;filename=" + filedisplay);
java.io.OutputStream outp = null;
java.io.FileInputStream in = null;
try
{
outp = response.getOutputStream();
in = new FileInputStream(filenamedownload);
byte[] b = new byte[1024];
int i = 0;
while((i = in.read(b)) > 0)
{
outp.write(b, 0, i);
}
outp.flush();
out.clear();
out = pageContext.pushBody();
}
catch(Exception e)
{
System.out.println("Error!");
e.printStackTrace();
}
finally
{
if(in != null)
{
in.close();
in = null;
}
//这里不能关闭
//if(outp != null)
//{
//outp.close();
//outp = null;
//}
}
两种方法保存时弹出一个保存框,正常的有 打开、保存、取消三个按钮,而我的没有打开按钮。点保存后文件类型显示未知,文件名也不是我设置的文件名。下载下来后用文件的真实类型打开也没问题。怎样才能让保存框自动识别文件类型,文件名实我设置的那个文件名呢?希望大家不吝赐教
String szHref=request.getParameter("Href");
String path=request.getRealPath(""); //新建一个SmartUpload对象
SmartUpload su = new SmartUpload();
//初始化
su.initialize(pageContext);
//设定contentDisposition为null以禁止浏览器自动打开文件,
//保证点击链接后是下载文件。若不设定,则下载的文件扩展名为
//doc时,浏览器将自动用word打开它。扩展名为pdf时,
//浏览器将用acrobat打开。
su.setContentDisposition(null);
//下载文件
//{{
//如果不用如下的,则response.getWriter(),因为这个方法是和response.getOutputStream()相冲突
//html这样的文档不能下载。
out.clear();
out = pageContext.pushBody();
//}}
String oFileName = new String(szHref.getBytes("gb2312"),"iso8859-1");
su.downloadFile(path+"\\DB\\UpLoad\\"+szHref,null,oFileName);
第二种方法 也不行。 //关于文件下载时采用文件流输出的方式处理:
response.reset();//可以加也可以不加
response.setContentType("application/x-download");
String filedownload = "文件的物理路径+文件名";
String filedisplay = "下载文件名";
response.addHeader("Content-Disposition","attachment;filename=" + filedisplay);
java.io.OutputStream outp = null;
java.io.FileInputStream in = null;
try
{
outp = response.getOutputStream();
in = new FileInputStream(filenamedownload);
byte[] b = new byte[1024];
int i = 0;
while((i = in.read(b)) > 0)
{
outp.write(b, 0, i);
}
outp.flush();
out.clear();
out = pageContext.pushBody();
}
catch(Exception e)
{
System.out.println("Error!");
e.printStackTrace();
}
finally
{
if(in != null)
{
in.close();
in = null;
}
//这里不能关闭
//if(outp != null)
//{
//outp.close();
//outp = null;
//}
}
两种方法保存时弹出一个保存框,正常的有 打开、保存、取消三个按钮,而我的没有打开按钮。点保存后文件类型显示未知,文件名也不是我设置的文件名。下载下来后用文件的真实类型打开也没问题。怎样才能让保存框自动识别文件类型,文件名实我设置的那个文件名呢?希望大家不吝赐教
解决方案 »
- 用httpclient, 出现错误 error PKIX path building failed
- myeclipse突然无法启动weblogic,有朋友遇到这个问题吗?
- ssh搭建的一个小项目,在tomcat 启动时出问题了
- 用java实现星座查询
- 跪求:quartz相关书籍
- 如何使用Apache Tomcat 4.1做域名泛解析??急`````
- 如何调用硬件设备的驱动程序?dll
- 有人知道吗?在线等?关于findByPrimaryKey()
- 在jbuilder8中,为什么编译通过,运行时会出现NoClassDefFoundError异常?
- 各位老大,给出每个标签是作什么用的!在线等待,全部答出立即给分,不够再加!多谢!!!1
- 谁做过Spring3 Hibernate4.x的junit dao测试,
- 刚刚接触hibernate 但是 annotation 不好用呢~ 帮忙解决下呗。
response.setContentType("application/x-download");
上面那句话的意思是指定文件类型,
具体常用的文件类型,你可以参考
http://www.360doc.com/content/08/0928/16/61497_1687997.shtml
response.setContentType("application/octet-stream");
还是没有那样啊。。
String fileName = "个人出行_" + sdf.format(new Date()) +".xls";
System.out.println(fileName);
response.addHeader("Content-Disposition", "attachment;filename=" + new String(fileName.getBytes("GBK"), "iso-8859-1"));
response.addHeader("Content-Length", "");
response.setContentType("application/x-download");这样写就可以,可能需要增加一个名称,就能提示是excel