我试图通过Angular Blob在我的网络应用程序上显示我的服务器上的pdf文件,但我收到了一些错误。我已经坚持了太长时间,并尝试了其他不起作用的东西。请建议。 我的Spring控制器返回byte []:
:'<,'>Align \(field\d\|string,\?\|bigint\|comment.*\)
我的角度代码:
@RequestMapping(value = "/showpdf", method = RequestMethod.POST, produces="application/octet-stream")
@ResponseBody
public byte[] showPDFFile(@RequestBody FilePath filePath, final HttpServletResponse response) throws IOException {
return org.apache.commons.io.FileUtils.readFileToByteArray(file);
}
我的HTML页面:
$http.post('/showpdf',{responseType: 'arrayBuffer'}).success(
function(response) {
console.log(response);
var file = new Blob([response], {type: 'application/pdf'});
var fileURL = URL.createObjectURL(file);
$scope.content = $sce.trustAsResourceUrl(fileURL);
});
pdf窗口即将发布,但它不会显示任何数据并在工具栏中继续加载(请参阅附件),并且浏览器工具中会出现以下错误。
<div>
<object data="{{content}}" type="application/pdf" style="width: 100%; height: 1000px;"></object>
</div>
我试过硬编码这个pdf,它渲染得很好。
答案 0 :(得分:4)
Using 'arraybuffer' instead of 'arrayBuffer' as the responseType parameter shall solve the issue:
$http.post('showpdf',{responseType: 'arraybuffer'}).success(
...