#node.js #express
Вопрос:
У меня возникли проблемы с multer, так как я использую socket.io(Я не уверен, но после того, как я использовал это, мое промежуточное программное обеспечение multer не работало должным образом). Вот мой код для получения дополнительной информации
const maxSize = 1024 * 1024 * 2
const storage = multer.diskStorage({
destination: function (_req, _file, cb) {
cb(null, path.join(process.cwd(), 'assets', 'pictures'))
},
filename: function (_req, file, cb) {
const ext = file.originalname.split('.')[1]
const date = new Date()
cb(null, `${date.getTime()}.${ext}`)
}
})
const upload = multer({
storage: storage,
limits: { fileSize: maxSize }
}).single('picture')
const uploadFilter = (req, res, next) => {
console.log(req, 'test mmulter first')
upload(req, res, function (err) {
if (err instanceof multer.MulterError) {
return response(res, false, err.message, 400)
} else if (err) {
return response(res, false, err.message, 500)
}
// console.log(req, 'test multer second')
next()
})
}
Поэтому, когда я пытаюсь загрузить файл размером менее 50 кб, загрузка работает отлично, но когда я пытаюсь поместить файл размером более 50 кб, он будет продолжать висеть, не возвращая никакого ответа, даже если он не возвращает ошибку, поэтому, когда происходит эта ошибка, console.log() и next() внутри загрузки не вызываются. Странно то, что файл действительно сохранен в моей локальной папке (50 кб или больше), но когда дело доходит до файла размером более 50 кб, он обрезается.
вот так
введите описание изображения здесь
Комментарии:
1. Дополнительная информация: Я пытаюсь сохранить файл в своей БД, поэтому, когда размер файла превышает 50 КБ, он не будет сохранен
2. еще одна информация: изображение выше, которое обрезается, является файлом png, для jpg, jpeg и т. Д., Оно работает нормально (сохранить в локальную папку), но да, у него все еще та же ошибка (файл не сохранен в БД)