簡體   English   中英

如何將pdf文件從前端發送到Nodejs服務器?

[英]How to send pdf file from front-end to Nodejs server?

我使用html2pdf插件在應用程序的前端有一個pdf生成的文件。 我的支持者有一個nodemailer服務器,可以在其中附加文件並將其發送到我選擇的電子郵件中。 有沒有辦法將前端生成的pdf發送給Nodejs? 我也在用快遞

編輯:根據您的建議,我做了

 **On the Client side**
var element = document.getElementById('element-to-print');
const elem = document.getElementById('html');
html2pdf().from(element).toPdf().get('pdf').then(function (pdf) {
            window.open(pdf.output('bloburl'), '_blank');
            var formData = new FormData();
            formData.append("filename", pdf);
            axios.post('/upload',formData).then(res => { console.log(res) })
            // formData.append("uploadedFile", fileInputElement.files[0]);
            })

在快遞應用上

app.post('/upload', fileUpload(), function(req, res) {  
    const sampleFile = req.files.uploadedFile;
    // do something with file
    res.send('File uploaded');
  })

但是我收到來自index.js的錯誤

TypeError:無法讀取null的屬性“ uploadedFile”

<form method="post" enctype="multipart/form-data" action="/">
<div>
  <label for="profile_pic">Choose file to upload</label>
  <input type="file" id="profile_pic" name="profile_pic"
      accept=".pdf">
</div>
<div>
  <button>Submit</button>
</div>

為了在節點上接收它,您必須在同一路徑上定義一條新路由。

是。

  1. 在您的Express應用中創建和終結點/路由
  2. 在客戶端中使用http代理(例如superagent,request或axios)
  3. 使用多部分表單或類似FormData的東西來創建應該發送的數據。
  4. 將其發布到您在express中創建的網址。
  5. 使用Middlewere(例如express-fileupload或busboy)來處理附件。

因此,在您的客戶中。 你有類似的東西

var formData = new FormData();
formData.append("filename", "My awesome file");
formData.append("uploadedFile", fileInputElement.files[0]);

然后用類似Axios的東西發布

axios.post('/upload',formData).then(res => { console.log(res) })

在您的Express應用中,您可以執行以下操作

const express = require('express');
const fileUpload = require('express-fileupload');
const app = express();

app.post('/upload', fileUpload(), function(req, res) {  
  const sampleFile = req.files.uploadedFile;
  // do something with file
  res.send('File uploaded');
})

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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