Мне нужно отправить PDF-файл, созданный на стороне клиента с помощью html2pdf, на сервер. Мне удалось преобразовать сгенерированный 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.info(newpdf)
var formData = new FormData();
formData.append("uploadedFile", newpdf);
axios.post('/upload',formData).then(res => { console.info(res) }).catch(error => {
console.info(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 (Internal Server Error)
Как мне решить эту проблему? Спасибо.
На стороне сервера я получаю Невозможно прочесть свойство uploadedFile со значением null



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Для FormData в express вы должны использовать промежуточное ПО, такое как 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
})
проверьте на стороне сервера, можете ли вы получить файл в кодировке base64