将非公共文件作为附件作为响应发送(下载非公共文件)
Send non-public file as attachment in response (download non-public file)
我在HTML中有一个下载按钮,当单击该按钮时,会通过ajax发出POST请求,发送必须下载的文件的文件名。
在服务器端,我做了这样的事情:
function download (req, res) {
...
// path is an absolute path to a file that is not in the public
// directory. I want to download that file
res.writeHead(200, {
"Content-disposition": "attachment;filename='"" + path + "'"",
"Content-Type": "text/csv"
});
var filestream = fs.createReadStream(path);
filestream.pipe(res);
};
我可以在响应中看到文件内容,但没有显示保存文件对话框。
这是哪个问题?我该如何解决这个问题?
我只使用内置的节点模块,所以我不使用 express。
不能强制浏览器显示"保存文件"对话框。
以您的为例,在我的 Mac 上,Chrome 和 Safari 都会自动下载文件(在 Chrome 中,这是一个设置,是否显示一个对话框——我认为——默认情况下是关闭的;我不知道Safari是否有类似的设置),而FireFox确实给了我一个对话框。
相关文章:
- asp.net网站文件下载历史记录
- Firefox,如何提交表单触发文件下载,但停留在网页上
- Interent Explorer中的数据URI文件下载
- 将页面上的文本替换为 jQuery 并提示文件下载
- JavaScript文件下载
- 是否可以触发文件下载到用户的浏览器
- Javascript JSON 到 Excel 文件下载
- 使用Javascript将多个文件下载为zip文件或文件夹
- 巴比伦JS-场景从本地文件下载
- 文件下载html与错误处理FileNotFound
- 使用jQuery捕获站点范围内的文件下载
- 在WinJS中将文件下载到文件系统
- JQuery启动文件下载,然后运行一个函数
- 文件下载无法在firefox上运行
- 创建文件下载js
- 如何使用JQuery禁用pdf文件下载选项
- 使用JavaScript/Jquery创建文本文件下载/更新到本地客户端机器中的特定位置
- CollectionFS中是否存在用于文件下载的事件侦听器/回调
- 文件下载后,Document Ready无法工作
- 浏览器不生成文件下载对话框