2015-09-23 2 views
0

сохранить изображение в папке с помощью nodeJS и angularJSсохранить изображение в папке с помощью nodeJS и angularJS

Привет, я хочу сохранить изображения в папке, у меня BACKEND в NodeJS и мой frondEnd в AngularJS, используя нг-поток ; мой угловой код услуги заключается в следующем

 addImages : function (file) { 
      var uploadUrl = localPath + "addImages"; 
      var fd = new FormData(); 
      fd.append('file', file); 
      return $http.post(uploadUrl, fd, { 
       transformRequest: angular.identity, 
       headers: { 'Content-Type': undefined, 
           'file-name' : undefined, 
           'file-location' : undefined, 
           'user-id' : undefined 
          } 
      }); 
     } 

и у меня есть следующие услуги POST в узле

router.post('/addImages', function (req, res) { 
     console.log(req); 
    var tempPath = req.files.file.path; 
     console.log(tempPath); 
    var targetPath = path.resolve('/../static/image/image.png'); 

     console.log(targetPath); 
     console.log(req.files.file.name); 
    if (path.extname(req.files.file.name).toLowerCase() === '.png') { 
     fs.rename(tempPath, targetPath, function(err) { 
      if (err) throw err; 
      console.log("Upload completed!"); 
     }); 
    } else { 
     fs.unlink(tempPath, function() { 
      if (err) throw err; 
      console.error("Only .png files are allowed!"); 
     }); 
    } 
    // ... 
}); 

ошибка, что я получаю POST /assetImage/addImages 500

кто-то знает более простую форму, чтобы получить изображение в угловом и сохранить в папке с помощью узла?

Редактировать

при печати файла с помощью console.log я получить уплотнительный объект файла, как File { name: "howls-moving-castle-40994-1920x1200…", lastModified: 1431122408000, lastModifiedDate: Date 2015-05-08T22:00:08.000Z, size: 910465, type: "image/jpeg" }, но при печати файлового дескриптора получить пустой объект FormData { } я intentend передать файл whitout с помощью formData, но в узле получить пустой объект до

+0

Попробуйте выбрать первый файл из массива, fd.append («файл», файлы [0]). И проверьте req в консольном журнале, как вы уже это делали. Это так, как ожидалось? – fubbe

+0

привет @fubbe спасибо за ваш ответ, я редактирую вопрос, какой результат, объект fd пуст, и я не могу передать файл напрямую – oriaj

ответ

0

Если вы используете Express.js, body-parser не обрабатывает многочастные тела из-за их сложной и типично большой природы. Для многослойных тел, вы можете быть заинтересованы в следующих модулях:

  • помощника официанта
  • многопартийная
  • грозного
  • multer
  • Смотрите suggested modules here для разбора многокомпонентных тел.

    Смежные вопросы