[英]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.