【发布时间】:2016-12-11 10:34:05
【问题描述】:
我在 Google Chrome 中遇到下载问题。 我正在使用 Ruby 2.2、Rails 4.2、AngularJS 1.2。
我们这里没有数据库。我们通过 API 获得的一切。我们尝试下载的文件大约是 7 mb。它给了我们“失败:网络错误”。虽然它在 Firefox 上运行良好。
我们从 API 获取 JSON 格式的二进制数据。我们正在解析它。然后:
send_data response_fields["attachment"], type: response_fields["mimeType"], disposition: 'attachment', filename: params[:filename]
当我们使用 AngularJS 时,我们在 AngularJS 控制器中捕获该值,然后将其转换为:
var str = data;
var uri = "data:" + mimeType + ";base64," + str;
var downloadLink = document.createElement("a");
downloadLink.href = uri;
downloadLink.download = filename;
document.body.appendChild(downloadLink);
downloadLink.click();
document.body.removeChild(downloadLink);
这适用于 Firefox 甚至 Chrome 以减小文件大小。不知道为什么它会在 Chrome 上显示更大尺寸的错误。
有什么建议吗?
谢谢。
【问题讨论】:
-
尝试使用 blob 代替 base64
-
我遇到同样的错误:下载失败-网络错误
标签: javascript angularjs google-chrome ruby-on-rails-4