#javascript #node.js #express #multer
#javascript #node.js #экспресс #multer
Вопрос:
Я пишу код, в котором мне нужно ограничить размер файла или ограничить количество загружаемых файлов.
Например, пользователь может загружать максимум 100 файлов одновременно или пользователь может загружать файлы размером до 100 мб. Но когда я запускаю его и выбираю 7 файлов по 10 МБ каждый, он выдает мне эту ошибку:
Также как я могу обработать ошибку, если какой-либо из пределов превышает при загрузке пользователя?
Ниже приведен мой код:
var maxSize = 100 * 1024 * 1024;
const express = require("express")
const multer = require('multer');
const csvtojson = require('csvtojson');
var storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, './upload') //Destination folder
},
filename: function (req, file, cb) {
cb(null, file.originalname) //File name after saving
}
})
const upload = multer({ storage: storage ,limits: { fileSize: maxSize }});
const router = express.Router()
router.post("/multiple",upload.array("ziptable",100),(req,res)=>{
var file = req.files;
console.log(file)
res.send("ok")
})
мой html:
<form action="/multiple" method="POST" enctype="multipart/form-data">
<div id="middle">
<input id="uploadzip" name="ziptable" type="file" multiple>
<button id="submit" type="submit" class="btn btn-primary">SELECT FILES</button>
</div>
</form>
Ответ №1:
На данный момент нет функциональности, подобной allFileSizeLimit
для решения этой проблемы.
Может быть, вы можете написать какой-нибудь пользовательский код в fileFilter
функции. Найдите сумму размеров файлов, и если этот общий размер превышает ваш лимит, вы можете выдать пользовательскую ошибку.
Кроме того, вы можете написать пользовательский отправитель формы на интерфейсном javascript и отправить запрос на сервер, только если общий размер меньше вашего предела. Но этот javascript может быть изменен консолью браузера, поэтому вам нужно написать вышеуказанную логику на сервере.
Комментарии:
1. Большое вам спасибо. Я понимаю, но почему я получаю доступ к сайту, когда я загружаю файлы?
2. Ну, я не сталкивался с этой проблемой, но вы можете отладить код и проверить, с какой точки сервер выдает ошибку.