我正在使用角度$ http从服务器下载文件。文件类型可以不同。我应该设置请求标头以进行身份验证。下载完成后,文件已损坏!这是我在客户端保存文件的代码:
getFile: function(file) {
$http({
method: 'GET',
url: 'download' + "/" + file.name,
headers: {
"X-AUTH-TOKEN": "my-token",
Accept: "*/*",
}
}).success(function(data) {
var fileBlob = new Blob([data], {
type: '*/*;charset=utf-8'
});
saveAs(fileBlob, file.name);
}).error(function(err) {
console.log('err', err);
});
}
我最终通过将以下配置添加到ajax请求中解决了该问题:
dataType : "binary",
processData : false,
responseType : 'arraybuffer'
并将Blob类型更改为
“应用程序/八位字节流”
我编写的下载文件的方法总是产生损坏的文件。 我通过adb访问这些文件,将它们传输到我的sccard,在那里我看到它们似乎有合适的大小,但没有根据例如Linux命令的类型。 你知道丢失了什么以及如何修复它吗? 谢谢。 代码的简单版本(但错误相同) 日志:< code > file . length:2485394 | content length:1399242 问题是,我从我的API单例中获得了,
问题内容: 使用带有角的ResponseEntity下载任何文件不起作用 我需要在客户端使用angular下载文件,该文件可以具有pdf或excel或image或txt的任何格式…我的方法仅适用于txt文件,但给我excel和image的失败格式,对于pdf,它会给出一个空的pdf。 所以在我的控制器中,这里是调用service方法的函数: 而我的service.js具有: 我的服务方法是这样的:
问题内容: 我有一个生成CSV文件并将其通过http / ajax get返回到页面的服务。我希望用户单击按钮,调用服务,然后将文件下载到用户的浏览器。 我想使用Angular Way,尽管我认识到这可能与Ajax或浏览器的关系要比Anguler本身更多。 该服务在C#中,它返回的内容是: 调用该服务的控制器代码如下所示。它有效,但是我不知道如何成功: 问题答案: 您无法从常规的ajax GET或
API将返回CSV/PDF/XLS类型的文件 问题:
由此下载的文件大小几乎相同,但在某些行中有所不同。每个答案都指向二进制文件类型。但这没用。有人对这个问题有什么想法吗?
问题内容: 我以前使用Axios下载GET端点提供的文件。端点已更改,现在是POST,但是不需要参数。我正在更新原始的下载方法,但是返回了损坏的文件。 我不知道,如果问题出在,或如何响应的处理或全部的上方。到目前为止,我已经尝试了各种选择,但没有运气。任何建议将不胜感激! 我已经能够使用Postman下载文件,所以我知道端点提供的文件很好。我只是无法在我的React代码中理清参数来做到这一点。 问