Использование формы HTML для загрузки изображения, а также текстов на узле и в среде express - PullRequest
0 голосов
/ 15 января 2020

Я впервые задаю вопрос о переполнении стека. Я нашел какой-либо ответ или подсказку от inte rnet за последние 5 часов ... но все еще не нашел никакого решения.

Я хочу загрузить изображение, а также текст из нескольких полей. на узле и express приложение. Я использовал node-formidable, который, очевидно, может обрабатывать multipart / form-data. Тем не менее, я изо всех сил пытался загрузить файл, чтобы проверить, прикреплен ли файл изображения к форме или нет.

 async uploadImage(req) {
   const form = new formidable.IncomingForm();
   const parsedData = form.parse(req); 

   // I have been working to how to obtain filled field value here
   form.on('field', (name, value) => {
     console.log('name', name);
     console.log('value', value);
   })

   // here I start to struggle how to check if the image is attached on the form or not
   // my idea is get image size from form input then move file to specific folder
   let size = form.on('file', (name, file) => {
     console.log('name', name);
     console.log('file', [file, file.size]);
     return file.size;
   })

   // however, this idea doesn't work
   // image isn't uploaded as per this code
   // but if there is no size check or some sort of checking,
   // there is an error when no image file is attached on the form
   if (size > 0) {
     form.uploadDir = './public/images/';
     form.keepExtensions = true;
     form.on('fileBegin', (name, file) => {
       file.path = form.uploadDir + file.name;
     });
   }

   form.on('error', function(err){
     console.log(err);
   });

Извините за мое грязное объяснение, но я должен знать следующее:

  1. Как использовать форму-узел для загрузки файла изображения с проверкой / обработкой ошибок, если файл изображения прикреплен к форме или нет.

  2. Как получить значения из полей ввода при загрузке изображения.

Заранее спасибо,

...