Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs Blob pdf呈现提供错误无效的外部参照流标头_Angularjs_Spring Mvc_Pdf - Fatal编程技术网

Angularjs Blob pdf呈现提供错误无效的外部参照流标头

Angularjs Blob pdf呈现提供错误无效的外部参照流标头,angularjs,spring-mvc,pdf,Angularjs,Spring Mvc,Pdf,我试图通过Angular Blob在我的web应用程序上显示来自服务器的pdf文件,但我在那里收到了一些错误。我已经被这个问题困扰了太长时间,并且尝试了其他一些不起作用的东西。请建议。 我的Spring控制器返回字节[]: @RequestMapping(value = "/showpdf", method = RequestMethod.POST, produces="application/octet-stream") @ResponseBody pu

我试图通过Angular Blob在我的web应用程序上显示来自服务器的pdf文件,但我在那里收到了一些错误。我已经被这个问题困扰了太长时间,并且尝试了其他一些不起作用的东西。请建议。 我的Spring控制器返回字节[]:

    @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);             
    }
我的角度代码:

$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);

                            });
我的HTML页面:

<div>
    <object data="{{content}}" type="application/pdf" style="width: 100%; height: 1000px;"></object>
</div>

pdf窗口即将出现,但它不显示任何数据,并继续在工具栏中加载(请参见附件),浏览器工具中将出现以下错误

Error: Invalid XRef stream header
pdf.worker.js (line 250)
<System>

XRef_readXRef@resource://pdf.js/build/pdf.worker.js:3693:13
XRef_parse@resource://pdf.js/build/pdf.worker.js:3289:23
PDFDocument_setup@resource://pdf.js/build/pdf.worker.js:2484:7
PDFDocument_parse@resource://pdf.js/build/pdf.worker.js:2371:7
LocalPdfManager_ensure/<@resource://pdf.js/build/pdf.worker.js:1934:20
LocalPdfManager_ensure@resource://pdf.js/build/pdf.worker.js:1929:1
BasePdfManager_ensureDoc@resource://pdf.js/build/pdf.worker.js:1861:14
loadDocument/</<@resource://pdf.js/build/pdf.worker.js:33208:11

pdf.worker.js (line 252)
<System>
Warning: Unsupported feature "unknown"
pdf.worker.js (line 235)
<System>
Warning: Unsupported feature "unknown"
Warning: Indexing all PDF objects
pdf.worker.js (line 235)
<System>
PDF 0d3cdf6286f2947410f0d270a249f816 [1.4 iText 2.1.3 (by lowagie.com)      kSar Version:5.0.6] (PDF.js: 1.0.1149)
 Error: Bad uncompressed block length in flate stream
pdf.worker.js (line 250)
<System>

FlateStream_readBlock@resource://pdf.js/build/pdf.worker.js:31244:9
DecodeStream_getByte@resource://pdf.js/build/pdf.worker.js:30882:9
Lexer_nextChar@resource://pdf.js/build/pdf.worker.js:30125:34
Lexer@resource://pdf.js/build/pdf.worker.js:30067:5
EvaluatorPreprocessor@resource://pdf.js/build/pdf.worker.js:12105:30
PartialEvaluator_getOperatorList@resource://pdf.js/build     /pdf.worker.js:10616:26
Page_getOperatorList/pageListPromise<@resource://pdf.js/build/pdf.worker.js:2216:16

pdf.worker.js (line 252)
<System>
Warning: Unsupported feature "unknown"
pdf.worker.js (line 235)
错误:无效的外部参照流标题
pdf.worker.js(第250行)
外部参照_readXRef@resource://pdf.js/build/pdf.worker.js:3693:13
外部参照_parse@resource://pdf.js/build/pdf.worker.js:3289:23
PDF文档_setup@resource://pdf.js/build/pdf.worker.js:2484:7
PDF文档_parse@resource://pdf.js/build/pdf.worker.js:2371:7

LocalPdfManager_sure/使用“arraybuffer”而不是“arraybuffer”作为responseType参数可以解决以下问题:

$http.post('showpdf',{responseType: 'arraybuffer'}).success(
...

{responseType:'arraybuffer'}
中的
arraybuffer
是否应全部小写?@async5:问题已解决,您能否将其作为答案发布,以便我可以接受其正确性。谢谢!非常感谢你的帮助!