#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.файл вернется неопределенным, но файл будет загружен в мои папки с файлами. Как я могу получить доступ к файлам ?