【问题标题】:Download zip file and trigger "save file" dialog from angular method下载 zip 文件并从角度方法触发“保存文件”对话框
【发布时间】:2014-12-21 17:09:26
【问题描述】:

我有一个标准的角码,当点击按钮时触发:

$scope.downloadAll = function () {   
  $http.get("download.php?id=" + $scope.id).success(function (data) {
    }).error(function () {
        $scope.status = "Error: can not download table data from server.";
    }); 
 }

但是我的 php 脚本返回一个 zip 存档,因此它的内容以 javascript 变量 data 结尾。我想修改行为,以便浏览器提供 zip 存档以存储在本地磁盘上。我将如何实现这一点,保持角度按钮处理程序?

【问题讨论】:

  • window.location = "download.php?id=" + $scope.id;

标签: javascript angularjs


【解决方案1】:

在您的角度控制器中,注入 $window 并像这样使用它:

$scope.downloadAll = function () {
  $window.location.href = "/download.php?id=" + $scope.id;
}

在服务器上,确保为您的 zip 文件提供适当的 http 标头以提示文件下载(内容处置、mime 类型...)。

【讨论】:

  • 有没有办法指定下载文件名?与<a download="filename.zip" href="/download.php?..."> 相同,但没有锚标记?
  • 这就是服务器头的用途 (content-disposition)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-04-22
  • 1970-01-01
  • 2016-11-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多