Angularjs 通过restful下载带有Ionic的pdf文件

Angularjs 通过restful下载带有Ionic的pdf文件,angularjs,rest,ionic-framework,ngcordova,Angularjs,Rest,Ionic Framework,Ngcordova,我正在创建一个移动应用程序,我想下载一个带有restful的pdf文件,我不知道这是否可行 $headers = array('Content-type: application/json','Authorization: ',); $fp = fopen (dirname(__FILE__) . '/localfile.tmp', 'w+'); $curl = curl_init($service_url); curl_setopt($curl, CURLOPT_HTTPHEADER, $h

我正在创建一个移动应用程序,我想下载一个带有restful的pdf文件,我不知道这是否可行

$headers = array('Content-type: application/json','Authorization: ',);
$fp = fopen (dirname(__FILE__) . '/localfile.tmp', 'w+');

$curl = curl_init($service_url);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($curl_post_data));
curl_setopt($curl, CURLOPT_USERPWD, $api_key);
$file = curl_exec($curl);
if ($file === false){
   $info = curl_getinfo($curl);
   curl_close($curl);
   die('error occured during curl exec. Additioanl info: ' . var_export($info));
}

curl_close($curl);
header('Content-type: ' . 'application/octet-stream');
header('Content-Disposition: ' . 'attachment; filename=report.pdf');
echo $file;

angular.module('getPdf.Pdf', []).factory('Pdf', function ($http) {
    var folUrl = urlRest + '/getPdf.php';
    return {
        getPdf: function (pdfName) {
            return $http.post(folUrl, pdfName).then(function (response) {
                   return response;
            });
        }
    };
});

我可以将文件作为对象获取,但我不知道这是不是正确的方法?

这是一段时间前我使用AngularJS从服务中保存PDF文件时使用的代码片段,使用AngularJS应该可以在Ionic中工作

 getPdf: function (pdfName) {
            return $http.post(folUrl, pdfName).then(function (result) {
              var file = new Blob([result.data], {type: 'application/pdf'});
                var timestamp = new Date().toUTCString();
                 saveAs(file, pdfName +timestamp+ ".pdf");
            });
        }

如果saveas函数本身无法工作,则可能需要在项目中添加FileSaver.js

这是我很久以前使用AngularJS从服务中保存PDF文件时使用的代码片段,它应该在Ionic中工作

 getPdf: function (pdfName) {
            return $http.post(folUrl, pdfName).then(function (result) {
              var file = new Blob([result.data], {type: 'application/pdf'});
                var timestamp = new Date().toUTCString();
                 saveAs(file, pdfName +timestamp+ ".pdf");
            });
        }

如果saveas函数本身无法工作,则可能需要在项目中添加FileSaver.js

如果该文件来自服务器,那么您是否可以不使用
内容配置
下载该文件?更受支持的浏览器,更少的内存问题&更快如果文件来自服务器,那么您是否可以不使用
内容处理
来下载该文件?更受支持的浏览器、更少的内存问题和更快的速度