我在发出下载文件的 POST 命令时遇到问题。
在客户端,我正在尝试发布到特定的 URL,包括一个指定要下载的文件的参数。
var req = $.ajax({
type: 'POST',
url : '/click',
data: { 'path' : filename }
});
req.done(function(data) {
// Download the file here?
服务器最终会触发一个执行此操作的方法:
function downloadFile(req, res) {
var dir = req.session.currentdir + req.body.path;
mimetype = (shell.exec("file --mime-type '" + dir + "'", {silent:true}).output);
mimetype = mimetype.substring(mimetype.indexOf(": ") + 2, mimetype.length);
var stat = fs.statSync(dir);
res.writeHead(200, {'Content-Type' : mimetype,
'Content-Length': stat.size });
var fileStream = fs.createReadStream(dir);
fileStream.pipe(res);
};
现在我似乎无法让客户端接受我试图通过管道返回的文件。. 它只是在关闭之前挂了很长时间。让客户端下载我要发回的文件的适当方法是什么?
非常感谢您花时间阅读。