我想通过 REST 从服务器下载文件。我想将一些参数传递给我的 JAVA 程序。我发现 FileSaver.js 库运行良好,但不适用于 Safari 8。如何在 Safari 中下载文件?像这样的angular http get仅适用于 Google Chrome,我不知道如何将参数传递给 http get。我使用 JAVA 和 Spring MVC
最佳答案
在后端,我们像这样提供文件:
@RequestMapping(value = "/fileService/temp/{temporalLink}", method = RequestMethod.GET)
public ResponseEntity<byte[]> getFileByTemporalLink(@PathVariable @NotNull String temporalLink) {
byte[] fileContent; // get the file content somehow
String fileName; // and file name
String mediaType; // and media type
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.parseMediaType(mediaType));
headers.setContentDispositionFormData("attachment", fileName);
return new ResponseEntity<>(fileContent, headers, HttpStatus.OK);
}
在前端我们这样要求:
以及内部 Controller :
$scope.exportProductToPdf = function (someParams) {
getFileDownloadLink(someParams).then(function (response) {
$window.location.href = '/fileService/temp/' + response;
});
};
//代码中的某处
var getFileDownloadLink = function(someParams) {
//we do some promise work here to determine what file is being asked
// but basically we resolve the filename.
return $q(function(resolve, reject) {
//some work here...
resolve("filename.png");
});
}
关于javascript - 使用 Angular 从服务器下载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34423672/