Как отправить файлы из dropzonejs в серверную часть nodejs с помощью Multer?

#node.js #file-upload #multer #dropzone

Вопрос:

В интерфейсе я использовал Dropzonejs для создания файловой системы перетаскивания.

 <form class="dropzone" name="fileupload" id="droparea" action="/" method="post" 
  enctype="multipart/form-data">
<div class="dz-message needsclick dragText dz-progess">
  <div class="icon"><i class="far fa-file-pdf fa-2x"></i></div><br>
  Click or Drag amp; Drop to Upload Files
</div>
</form>
 

В конце концов, мне нужен мультер, и я пытаюсь использовать его для получения загруженных файлов.

 const express = require("express");
const bodyParser = require("body-parser");
const ejs = require("ejs");
const pdfmerge = require("easy-pdf-merge");
const multer = require("multer");

const app = express();

const fileStorage = multer.diskStorage({
destination: function(req,res,cb){
 cb(null, "files/");
 },
filename: function(req,file, cb){
 cb(null, file.originalname);
  }

 });

const upload = multer({storage:fileStorage});

app.set('view engine', 'ejs');
app.use(bodyParser.urlencoded({
  extended: true
}));
app.use(express.static("public"));

app.get("/", function(req, res){
  res.render("index");
});

app.post("/", upload.single("fileupload"), function(req,res){
  console.log("server ok");
  console.log(req.file);

})

app.listen(3000, function() {
  console.log("Server started on port 3000");
}); 
 

В моей форме я не включил никакого входного тега (достаточно тега формы с dropzone), и я хочу использовать Multer для загрузки файлов в форму. Я попытался использовать «upload.single(«загрузка файлов»)», в котором используется имя формы вместо тега ввода, но это не сработало. Есть ли какой-нибудь способ получить файлы ? Если я использую upload.any(), то req.файл вернется неопределенным, но файл будет загружен в мои папки с файлами. Как я могу получить доступ к файлам ?