最近项目有个需求,是在浏览器里点击下载按钮时,能弹出文件下载到哪个路径的对话框;请教下,这个功能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());
我之前有写过下载文件,浏览器弹出下载框的需求,一开始也是纠结于这个下载框是怎么出现的,后来发现,我的点错了,最后使用的上面的代码实现的,希望有所帮助
添加回答
举报
0/150
提交
取消