将html2pdf生成的pdf发送回服务器

问题描述 投票:2回答:1

我必须使用html2pdf将客户端生成的PDF发送到服务器。我已设法将生成的PDF转换为base64,并希望使用axios将其发回。这是我的客户端代码:

  function myFunction(){
           var element = document.getElementById('element-to-print');
           html2pdf().from(element).outputPdf().then(function(pdf) {
    //Convert to base 64
            const newpdf=btoa(pdf);
            console.log(newpdf)
            var formData = new FormData();
            formData.append("uploadedFile", newpdf);
            axios.post('/upload',formData).then(res => { console.log(res) }).catch(error => {
            console.log(error.response)
        })
    });

这是我的服务器端代码:

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

我认为问题是在客户端,因为我在我的控制台上获得了转换后的pdf的base64版本,但之后我得到了错误:

POST http://localhost:3000/upload 500(内部服务器错误)

我该如何解决这个问题?谢谢。

javascript node.js express form-data
1个回答
0
投票

对于express中的FormData,您应该使用Multer这样的中间件

你的代码将是这样的:

var express = require('express')
var multer  = require('multer')
var upload = multer({ dest: 'uploads/' })

var app = express()

app.post('/upload', upload.single('uploadedFile'), function (req, res, next) {
  // req.file is the `avatar` file
  // req.body will hold the text fields, if there were any
})
© www.soinside.com 2019 - 2024. All rights reserved.