Я пытаюсь обработать, если неправильный тип файла загружен через multer для перенаправления обратно на главную страницу с сообщением об ошибке, сохраненным в переданной переменной.
В fillFilter константы загрузки, я имеюпопытался перенаправить на страницу с помощью app.post, но это не сработало.Я попытался обработать ошибку обратного вызова в ответном сообщении, но он сделал то же самое.Опять же, я не вижу много документации о том, что мне нужно, поэтому трудно понять, может ли синтаксис, который я сделал, вызвать проблему.
const express = require("express");
const app = express();
const path = require('path');
const multer = require("multer");
const storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, './uploads/')
},
filename: function (req, file, cb) {
cb(null, file.originalname)
}
})
const upload = multer({
storage: storage,
limits: {fileSize: 25000000}, //works with bytes, created a 25MB limit
fileFilter: (req, file, callback) => {
console.log(file.originalname)
let ext = path.extname(file.originalname);
if(ext !== '.zip') {
return callback(new Error('Only Zips are allowed'))
//Need to modify this to redirect?
}
callback(null, true)
}
})
app.get('/', function (req, res) {
res.render("index");
})
app.post('/', upload.single('fileUpload'), function (req, res) {
res.render("index", {postStatus : "File Succesfully Uploaded"});
});
Если введен правильный формат, в данном случае zip, он должен перенаправить обратно на страницу индекса с сообщением о состоянии «Файл успешно загружен» и сохранен в папке загрузки.
Если что-то еще, он перенаправляется обратно на главную страницу, но с сообщением об ошибкеговоря Тип файла не поддерживается.