从数组创建 pdf Blob 并查看它
Creating pdf Blob from array and viewing it
我无法显示我的 pdf。我将文件数据作为字节数组获取。这是我目前拥有的:
// data is originally String {0: % 1:P 2:D ...}
const byteArray = _.map(data); // ["%", "P", "D", "F", "-", "1", ".", "4", "↵", ...]
const blob = new Blob(byteArray, {type: 'application/pdf'});
const blobURL = URL.createObjectURL(blob);
window.open(blobURL),
当我记录它时,Blob 出现了,它有适当的长度和所有内容。由于某种原因,pdf 打开但为空。只有选项卡中的 header 是正确的(所以一定有正确的地方?)。故障可能出在我从中获取数据的后端,但我不确定,因为我无权访问它。如果有必要,您还可以建议更好的格式来从后端传输数据。
数据会不会以其原始形式呈现错误?
编辑:
当我用邮递员做请求时,它正确地显示了文件而我没有做任何事情
我通过在请求配置中添加 responseType='arraybuffer' 解决了这个问题。之后效果很好。
const blob = new Blob([byteArray], {type: 'application/pdf'});
const blobURL = URL.createObjectURL(blob);
window.open(blobURL)
我无法显示我的 pdf。我将文件数据作为字节数组获取。这是我目前拥有的:
// data is originally String {0: % 1:P 2:D ...}
const byteArray = _.map(data); // ["%", "P", "D", "F", "-", "1", ".", "4", "↵", ...]
const blob = new Blob(byteArray, {type: 'application/pdf'});
const blobURL = URL.createObjectURL(blob);
window.open(blobURL),
当我记录它时,Blob 出现了,它有适当的长度和所有内容。由于某种原因,pdf 打开但为空。只有选项卡中的 header 是正确的(所以一定有正确的地方?)。故障可能出在我从中获取数据的后端,但我不确定,因为我无权访问它。如果有必要,您还可以建议更好的格式来从后端传输数据。
数据会不会以其原始形式呈现错误?
编辑:
当我用邮递员做请求时,它正确地显示了文件而我没有做任何事情
我通过在请求配置中添加 responseType='arraybuffer' 解决了这个问题。之后效果很好。
const blob = new Blob([byteArray], {type: 'application/pdf'});
const blobURL = URL.createObjectURL(blob);
window.open(blobURL)