为了账号安全,请及时绑定邮箱和手机立即绑定

js 能够实现在下载文件的时候调系统的选择下载路径的弹窗吗

js 能够实现在下载文件的时候调系统的选择下载路径的弹窗吗

慕姐8265434 2018-08-05 14:00:40
最近项目有个需求,是在浏览器里点击下载按钮时,能弹出文件下载到哪个路径的对话框;请教下,这个功能js有可能通过调用某个接口实现吗
查看完整描述

2 回答

?
德玛西亚99

TA贡献1770条经验 获得超3个赞

这个弹框不是js调用哪个接口实现的,弹框的出现是浏览器的行为,一般都是通过后端实现的。
以java为例,点击“下载”按钮,向服务器发送下载请求,服务器接受请求并处理,重点来了,服务器处理完要向前端发response,这时候需要设置特定的response的header(我感觉浏览器出现选择路径等信息的对话框就是按照这个header判断的,纯粹个人猜测,有准确知道的,欢迎留言)
核心代码大概是这个样子:

//设置ContentType
  response.setContentType("application/octet-stream; charset=utf-8");
//处理中文文件名中文乱码问题
  String fileName=new String(file.getName().getBytes("utf-8"),"ISO-8859-1");
  response.setHeader("Content-Disposition", "attachment; filename=" + fileName);
  IOUtils.copy(new FileInputStream(file), response.getOutputStream());

我之前有写过下载文件,浏览器弹出下载框的需求,一开始也是纠结于这个下载框是怎么出现的,后来发现,我的点错了,最后使用的上面的代码实现的,希望有所帮助


查看完整回答
反对 回复 2018-08-09
?
倚天杖

TA贡献1828条经验 获得超3个赞

这个是浏览器决定的, 
比如chrome 默认用户下载目录, 不需要确认
其它浏览器有些在下载时可以自己选择保存位置

查看完整回答
反对 回复 2018-08-09
  • 2 回答
  • 0 关注
  • 4123 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信