UI5中sap.ui.unified.FileUploader读取PDF显示空白问题求助
问题原因与解决方案
嘿,这个问题我碰到过!问题出在你读取PDF文件的方式上:
你用了reader.readAsText(file)来读取PDF,但PDF是二进制格式的文件,把它当成纯文本读取会破坏原始的二进制数据结构——虽然最终生成的Blob文件大小看起来没问题(所以页数显示正确),但实际内容已经被损坏了,自然显示空白。
修正后的代码
openPDF: function (file) { if (file && window.FileReader) { var reader = new FileReader(); reader.onload = function (e) { var arrayBuffer = e.target.result; // 用ArrayBuffer直接创建Blob,保留原始二进制数据 const url = window.URL.createObjectURL(new Blob([arrayBuffer], { type: 'application/pdf' })); window.open(url, '_blank', 'fullscreen=yes'); }; // 关键改动:用readAsArrayBuffer读取二进制文件 reader.readAsArrayBuffer(file); } },
关键说明
- 替换
reader.readAsText(file)为reader.readAsArrayBuffer(file),这样能完整保留PDF的二进制原始数据 - 直接用读取到的
ArrayBuffer创建Blob,不需要做额外转换,确保PDF的格式完整性
这样修改后,打开的PDF应该就能正常显示内容啦!
内容的提问来源于stack exchange,提问作者CandyBear
相关产品推荐
相关产品推荐

