У меня есть сервер Node.JS, работающий как маршрутизатор, на него можно отправлять почтовые запросы для загрузки файлов, должны быть разрешены только расширения jpg/png/jpeg, что я сейчас делаю:
var form = new formidable.IncomingForm(),
files = [],
postToFolder,
source,
size = 0,
dest;
postToFolder = '/path/';
form.on('file', function (field, file) {
var fileType = file.type.split('/').pop();
if (fileType == 'jpg' || fileType == 'png' || fileType == 'jpeg') {
// alot of stuff
}
else{
console.log('invalid filetype');
fs.unlinkSync(file.path);
console.log('Deleted: ' + file.path);
}
Этот код работает, но он загружает файлы в папку /tmp/, а затем должен удалить их, если они недействительны. Было бы лучше для производительности, если бы я мог проверить расширение файла до того, как файл будет полностью загружен. Кто-нибудь знает, как? Я безуспешно пробовал гуглить и наткнулся на некоторые ответы, которые неприменимы к Грозному.
РЕДАКТИРОВАТЬ:
Итак, я обнаружил, что это срабатывает ПРЯМО перед его запуском, но он начинает записывать файл, отменяет его или ломает сервер во время этого, что приводит к тому, что весь мой файловый диск несколько раз переписывается, документация действительно плохая, поэтому я не могу найти ничего, что позволит мне "пропустить" файл
form.on('fileBegin', function(field, file) {
var fileType = file.type.split('/').pop();
if (fileType == 'jpg' || fileType == 'png' || fileType == 'jpeg') {
}
else{
}
});