我創建了一個服務來生成pdf文件go-wkhtmltopdf這是功能func Pdf() func(c *gin.Context) { return func(c *gin.Context) { // download wkhtmltopdf and set that wkhtmltopdf on below wkhtmltopdf.SetPath("/usr/local/bin/wkhtmltopdf") type ReqHtml struct { Html string `json:"html"` } var html ReqHtml _ = c.BindJSON(&html) pdfg, err := wkhtmltopdf.NewPDFGenerator() if err != nil { log.Fatal(err) } page := wkhtmltopdf.NewPageReader(strings.NewReader(html.Html)) pdfg.Orientation.Set(wkhtmltopdf.OrientationPortrait) page.FooterRight.Set("[page]") page.FooterFontSize.Set(10) pdfg.AddPage(page) err = pdfg.Create() if err != nil { log.Println(err) } err = pdfg.WriteFile("./myPdf.pdf") if err != nil { log.Fatal(err) } }}那個Writefile將文件寫入我的根文件夾服務器,如何讓客戶端下載它?假設我有<button> download file </button>我應該用該結果的緩沖區向客戶端做出響應嗎?要不然是啥?
1 回答

不負相思意
TA貢獻1777條經驗 獲得超10個贊
只需將緩沖區發送到客戶端并使用此函數下載文件(React 示例代碼):
prepareDocForDownload = result => {
const length = Object.entries(result.data).length;
let bytes = new Uint8Array(length);
for (let i=0; i<length; i++) {
bytes[i] = result.data[i];
}
const file = new Blob(
[bytes.buffer],
{type: 'application/pdf'});
const fileURL = URL.createObjectURL(file);
const link = document.createElement('a');
link.href = fileURL;
link.setAttribute('download', 'file.pdf');
document.body.appendChild(link);
link.click();
};
- 1 回答
- 0 關注
- 111 瀏覽
添加回答
舉報
0/150
提交
取消