Javascript 如何使用angularjs提示保存对话框下载文件?
我在服务器中有一个包含文件的目录,现在我从客户端发送文件名,从服务器获取文件,直到该部分工作正常,下面是服务器现在的响应一旦我收到响应,我想提示用户下载该文件,因为我正在尝试使用Angularjs创建blob,但它不会提示用户保存该文件。有什么想法吗 ctrl.jsJavascript 如何使用angularjs提示保存对话框下载文件?,javascript,angularjs,express,Javascript,Angularjs,Express,我在服务器中有一个包含文件的目录,现在我从客户端发送文件名,从服务器获取文件,直到该部分工作正常,下面是服务器现在的响应一旦我收到响应,我想提示用户下载该文件,因为我正在尝试使用Angularjs创建blob,但它不会提示用户保存该文件。有什么想法吗 ctrl.js $scope.downloadFile = function(message){ DitFactory.getFile(message).then(function(response){ co
$scope.downloadFile = function(message){
DitFactory.getFile(message).then(function(response){
console.log('r',response);
var blob = new Blob([ response ], { type : 'text/plain' });
$scope.url = (window.URL || window.webkitURL).createObjectURL( blob );
console.log($scope.url);
});
};
serverResponse.json
{"level":"info","message":"another-2fdas message"}
server.js
app.get('/file', function (req, res) {
var dir = './ditLogs';
var root = path.resolve('./ditLogs');
var fileName = req.query.file_name;
var data;
fs.readdir(dir, function(err, items) {
items.forEach(function(file){
if(fileName === file){
data = file;
res.setHeader('Content-Disposition', 'attachment; filename=' + data);
res.sendFile(data, {root: root});
}
});
});
});
如果您使用的是express,您可以在server.js文件中尝试以下代码:
var file = 'path to your file';
res.download(file,function(err){
if(!err){
console.log('prompted successfully');
return;
}
});
签出,这使得它
下载($scope.url,“myfile.ext”)
我不清楚如何使用文档中的angularjs实现这一点我们是如何使用它的,而不是将其作为依赖项添加到配置或其他东西,所以。。你只要用它。用脚本标签把它包括进去。啊,我不是一个角度专家,但我知道它已经在角度项目中使用过,所以这并不难。基本功能也不是很容易测试的,所以我不确定需要将它紧密地结合在一起。