首頁  >  問答  >  主體

在React端下載時,如何將緩衝區轉換為文件

<p>我正在使用<a href="https://www.npmjs.com/package/convert-html-to-pdf">https://www.npmjs.com/package/convert-html -to-pdf</a>來在nodejs中將html轉換為pdf。我有一個react前端和nodejs後端。我想將緩衝區轉換為一個文件,以便在react端供用戶下載。我該如何做?我不想在我的伺服器上保存文件。 </p>
P粉006847750P粉006847750383 天前507

全部回覆(1)我來回復

  • P粉020556231

    P粉0205562312023-09-02 19:51:17

    我們可以設定頭部 Content-disposition attachment 來指示回應是一個可下載的檔案。

    後端:Express範例

    const htmlToPDF = new HTMLToPDF(`
      <div>Hello world</div>
    `);
    
    const buffer = await htmlToPDF.convert();
    
    res.set("Content-Disposition", `attachment; filename="test.pdf"`);
    res.set("Content-Type", "application/pdf");
    
    res.send(buffer);

    前端:React範例

    const submit = () => {
      window.open("http://localhost:8000"); // 在此处填写您的端点
    };
    
    return (
      <button onClick={submit}>下载</button>
    );

    如果端點是POST方法,則 window.open 將無法運作。我們必須使用一個表單:

    <form action="http://localhost:8000" method="POST">
      <button type="submit">下载</button>
    </form>

    回覆
    0
  • 取消回覆