Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/417.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用angularjs提示保存对话框下载文件?_Javascript_Angularjs_Express - Fatal编程技术网

Javascript 如何使用angularjs提示保存对话框下载文件?

Javascript 如何使用angularjs提示保存对话框下载文件?,javascript,angularjs,express,Javascript,Angularjs,Express,我在服务器中有一个包含文件的目录,现在我从客户端发送文件名,从服务器获取文件,直到该部分工作正常,下面是服务器现在的响应一旦我收到响应,我想提示用户下载该文件,因为我正在尝试使用Angularjs创建blob,但它不会提示用户保存该文件。有什么想法吗 ctrl.js $scope.downloadFile = function(message){ DitFactory.getFile(message).then(function(response){ co

我在服务器中有一个包含文件的目录,现在我从客户端发送文件名,从服务器获取文件,直到该部分工作正常,下面是服务器现在的响应一旦我收到响应,我想提示用户下载该文件,因为我正在尝试使用Angularjs创建blob,但它不会提示用户保存该文件。有什么想法吗

ctrl.js

$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实现这一点我们是如何使用它的,而不是将其作为依赖项添加到配置或其他东西,所以。。你只要用它。用脚本标签把它包括进去。啊,我不是一个角度专家,但我知道它已经在角度项目中使用过,所以这并不难。基本功能也不是很容易测试的,所以我不确定需要将它紧密地结合在一起。