[英]pdf file is corrupted when a file encoded in base64 is downloaded
我尝试下载以前使用base 64编码的pdf文件。
我尝试从锚标记下载它,如下所示
<a href="data:application/pdf;base64,JVBERi0xLjUKJbXtrvsKMyAwIG9..." download="file.pdf">Download</a>;
该文件已下载,但是当我尝试打开该文件时,我收到一条消息,指出该文件已损坏或已损坏。
有趣的是,如果我将href更改为编码图像数据,则文件将按预期下载并打开。
我找到了这个示例http://jsfiddle.net/filixix/0816jdfq/ ,我发现它已从data:application/pdf;base64,
更改为data:application/octet-stream;base64
,我尝试了但我得到了相同的结果结果。
更新资料
我将pdf文件编码如下
const element = document.querySelector('#file'); // input type file
element.addEventListener('change', handleChange);
function handleChange() {
const file = this.files[0];
const fileReader = new FileReader();
fileReader.onload = function() {
const data = this.result;
// store data in database in a text type field
};
fileReader.readAsDataURL(file);
}
母鸡,在我要下载文件的视图中,我意识到我评论的逻辑
一般构想按预期工作。
但我建议您将 pdf 保留 为file 。
原因损坏的pdf问题可能是由于db字段大小 (如果将该字符串保留在db中)或浏览器的请求URL 限制引起的
所以你 说 :
在文本类型字段中将数据存储在数据库中
如果您不打算移至文件存储,只需将字段类型 更改为: LONGBLOB
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.