文件下载弹出“保存”对话框的问题

momi 2004-04-20 02:51:21
现在页面a.jsp中有一个超连接(或按钮),我希望点击它之后,弹出一个“保存”对话框,让我选择文件路径并输入我希望使用的文件名,点击“确定”之后,转到download.jsp。
download.jsp从服务器端读取F:\a\a.doc,写到本地文件(路径为我刚才选择的路径)。


如果我在程序里写死保存到本地的C:\,重新命名为b.doc,我已经能够实现。


我要问的是,怎样弹出一个“保存”对话框,让我选择C:\,并输入b.doc,再将这个路径传给download.jsp?
...全文
1133 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
momi 2004-04-20
  • 打赏
  • 举报
回复
好,谢谢大家。
wzy9645 2004-04-20
  • 打赏
  • 举报
回复
tomcat的web.xml文件里有常用mime类型的枚举,你查一下吧
momi 2004-04-20
  • 打赏
  • 举报
回复
非常感谢。


//通知客户文件的MIME类型:
response.setContentType("application/zip");


能否列举一下contentType的一些取值,说明一下意义?
momi 2004-04-20
  • 打赏
  • 举报
回复
正在调试中。
CoolAbu 2004-04-20
  • 打赏
  • 举报
回复
其实楼主的想法就是和一般下载差不多,弹出一个对话窗口,然后用户选择路径,然后保存。

可以参考以下代码

<%@ import="java.io.*" %>
<% //获得响应客户的输出流:
OutputStream o=response.getOutputStream();
//输出文件用的字节数组,每次发送500个字节到输出流:
byte b[]=new byte[500];
//下载的文件:
File fileLoad=new File("f:/2000","book.zip");//硬盘中这个路径不存在,
//下载对话框倒是能弹出
// 如果改成硬盘中实际存
// 在的路径,程序反而要报错
//客户使用保存文件的对话框:
response.setHeader("Content-disposition","attachment;filename="+"book.zip");
//通知客户文件的MIME类型:
response.setContentType("application/zip");
//通知客户文件的长度:
long fileLength=fileLoad.length();
String length=String.valueOf(fileLength);
response.setHeader("Content_Length",length);
//读取文件book.zip,并发送给客户下载:
FileInputStream in=new FileInputStream(fileLoad);
int n=0;
while((n=in.read(b))!=-1)
{ o.write(b,0,n);
}
o.flush();
o.close();
%>
denisu 2004-04-20
  • 打赏
  • 举报
回复
直接在download.jsp里面
写好response,
response.setContentType("application/octet-stream; charset=iso-8859-1");
response.setHeader("Content-disposition", "attachment; filename=" + File1);

然后读你的文件内容,
//自己添,用java.io.FileInputStream写到out就行了
然后写到out里面。就可以了。
客户端随便他怎么保存。
momi 2004-04-20
  • 打赏
  • 举报
回复
不知道大家是怎样的实现的,我只要流程即可。
denisu 2004-04-20
  • 打赏
  • 举报
回复
输入名字后,再转到download.jsp??
应该是文件实际都写好到out了,用户一输入文件名就开始下载了还差不多吧?
ln_boy 2004-04-20
  • 打赏
  • 举报
回复

居然有这样的实现流程???

看楼主怎么实现.

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧