Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.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
Angularjs 在客户端下载pdf文件_Angularjs_Node.js_Pdf - Fatal编程技术网

Angularjs 在客户端下载pdf文件

Angularjs 在客户端下载pdf文件,angularjs,node.js,pdf,Angularjs,Node.js,Pdf,我是MEAN stack的初学者。我想下载并向客户端显示pdf文件。为此,我的服务器端脚本如下所示: app.get("/pdf", function(req, res) { var file = __dirname + '/try.pdf'; res.download(file, function (err) { if (err) { console.log("

我是MEAN stack的初学者。我想下载并向客户端显示pdf文件。为此,我的服务器端脚本如下所示:

app.get("/pdf", function(req, res)
    {
        var file = __dirname + '/try.pdf';
        res.download(file, function (err) 
            {
               if (err) {
                   console.log("Error " + err);
               } else {
                   console.log("Success");  // server shows success but file is not downloaded to client 
               }
               res.end();
            }
        );
    }
);
启动服务器后,当我在浏览器中发出localhost/pdf命令时,文件被下载。 但,当我通过索引页连接到服务器并将此模块附加到按钮的ng click事件时,服务器显示 成功,但文件未下载到客户端。我的angularJS代码如下所示,其中还显示了成功和失败 然后是第条信息:

        app.controller('showPDF', function($scope, $http)
            {
                $scope.pdfShow = function()
                {
                    alert("Inside pdfShow");

                    $http.get("/pdf" ).
                    success(function(response){alert("PDF Success")}).
                    error(function(error, status){alert("PDF Error " + error + " status " + status); }).
                    then(function(response){alert("PDF then clause ")})
                } 
            }
        );


        <button ng-controller="showPDF" ng-click="pdfShow()">Show PDF file </button>
app.controller('showPDF',函数($scope,$http)
{
$scope.pdfShow=函数()
{
警报(“pdfShow内部”);
$http.get(“/pdf”)。
成功(函数(响应){alert(“PDF成功”)})。
错误(函数(错误,状态){alert(“PDF错误”+错误+“状态”+状态);})。
然后(函数(响应){alert(“PDF then子句”)})
} 
}
);
显示PDF文件
我有什么错误吗?请引导我


谢谢。

我看到的一个问题是res.end()在res.download回调中,请尝试将其移到res.download之外。另外,我建议您查看streams和fs.statFile sync以查看该文件是否存在。为什么需要使用XHR获取它?只需在不涉及任何angular或js的情况下进行此操作:
@idbehold不会公开服务器上存储文件的路径。xhr请求会屏蔽服务器上资产的位置。@Vish xhr不会真正屏蔽该位置,因为任何人都可以打开网络检查器查看路径。@idbehold该请求只会显示/get route req的路径,不会透露该请求在服务器上存储的文件的位置。我看到的一个问题是res.end()位于res.download回调中,请尝试将其移到res.download之外。另外,我建议您查看streams和fs.statFile sync以查看该文件是否存在。为什么需要使用XHR获取它?只需在不涉及任何angular或js的情况下进行此操作:
@idbehold不会公开服务器上存储文件的路径。xhr请求会屏蔽服务器上资产的位置。@Vish xhr不会真正屏蔽该位置,因为任何人都可以打开网络检查器查看路径。@idbehold该请求只会显示/get route req的路径,不会透露其存储在服务器上的文件的位置。