我正在尝试使用Js插件PDFObject获取PDF文件预览。 为了做到这一点,我将PdfFile发送到我的服务器,并将其保存在特定的文件夹中。这一步非常正常,我将pdf放在正确的文件夹中。
但是当我在ajax响应中将我的Pdf作为字节数组发送并尝试在新标签(或PDFObject标签)中打开它时,我收到文件的加载失败。
客户端:
$.ajax({
method: "POST",
url: "documents/preview",
processData: false,
contentType: false,
data: formData,
success : function(file) {
window.open("data:application/pdf," + file);
PDFObject.embed("data:application/pdf," + file, "#pdf-preview");
},
error : function(err) {
alert("Error : " + err);
}
})
服务器:
final File file = new File("path/to/pdf/file.pdf");
response.setContentType("application/pdf");
response.setContentLength(Long.valueOf(file.length()).intValue());
response.setHeader("Content-Disposition", "attachment; filename=" + file.getOriginalFilename());
fileInputStream = new FileInputStream(fichier);
final byte[] data = IOUtils.toByteArray(fileInputStream);
response.getOutputStream().write(data);
除非我逃避这样的数据:
window.open("data:application/pdf," + escape(file));
PDFObject.embed("data:application/pdf," + escape(file), "#pdf-preview");
然后pdf以正确的格式加载并使用正确的页面数量,唯一的是它们没有数据,所有页面都是空白的。
当我检查"文件" Chrome控制台中的变量我在pdf文件的每个流部分中得到了奇怪的东西,如下所示:
>file
"%PDF-1.3
%�����������
4 0 obj
<< /Length 5 0 R /Filter /FlateDecode >>
stream
x�\�r9r��S��nFk����|�=Z�7�ݙ>x�@�-
7(���~_L�a����>�2�(���ٜqHQh