簡體   English   中英

下載以base64編碼的文件時pdf文件已損壞

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM