2 pd10340927 pd10340927 于 2015.06.29 19:30 提问

java或者js怎么调用浏览器文件下载框中的保存,或者打开选择框

浏览器下载文件时,有个打开,有个保存,java或者js能通过代码调用么? 怎么操作

4个回答

showbo
showbo   Ds   Rxr 2015.06.30 11:43

js设置location跳转到你要下载的文件地址就好了

 location='要下载的文件地址'

如果你的文件是文本文件,图片这种浏览器能解析的,你需要动态设置content-disposition为attachment,然后输出文件才能弹出保存文件对话框,要不是直接显示在浏览器里面的,具体看下面的链接

http://www.qianshoublog.com/post/4837.html

zwbVsAjava
zwbVsAjava   2015.07.02 16:34

假设页面上有个url,url请求到一个servlet(servlet处理请求生成文件),可以把响应的contentType设置成application/octet-stream,客户端就可以弹出下载页面了;
具体测试:先写个servlet:
代码:public class DemoServlet extends HttpServlet{

@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    doPost(req, resp);
}

@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

    System.err.println("------------------request come in--------");

    String str = "zhangwenboDemoDownload";

    resp.setContentType("application/octet-stream");
    resp.setCharacterEncoding("UTF-8");
    //设置文件的名字
    resp.addHeader("Content-Disposition", "attachment; filename=zwb.txt"); 

    PrintWriter writer = resp.getWriter();

    writer.write(str);

    writer.flush();
}

}

然后再浏览器中请求servlet:
图片说明

就可以打开了

lfyainr
lfyainr str是做什么的,如果服务器上有两个 文件名字相同的文件怎么办
大约一年之前 回复
dcxy0
dcxy0   Ds   Rxr 2015.06.30 09:19

IE好像就是这样,jquery里面没遇到过。

pd10340927
pd10340927 我是要去手动调用,你说这样是什么?
2 年多之前 回复
wsw_dota_IT
wsw_dota_IT   2015.07.01 11:21

如果没有加url过滤的话,直接访问文件地址就可以了,文件类型好像跟浏览器有关呢~~

Csdn user default icon
上传中...
上传图片
插入图片