Hỏi về upload image trên NodeJS và AngularJS2



  • Chào mọi người. em đang có một case là em muốn upload ảnh lên server cụ thể là :
    em muốn up load avata của user lên thì em nên lưu thẳng ảnh đó vào database MongoDB hay em lưu image đó vào một thư mục tại server và chỉ lưu URL image đó vào database theo User.
    Hiện tại em sử dụng AngularJS2 để tạo form upload nhưng em không lấy được file ảnh mà chỉ có lấy được tên file đó nên vẫn chưa thể upload ảnh được lên. mọi người ai có làm phần này thì giúp đỡ em chút nhé.
    Thank you!



  • Bạn nên lưu url vào db thôi.
    Trước kia học trong trường thầy cũng bảo lưu được ảnh vào db nhưng mình chưa thử và cũng chưa gặp dự án nào như vậy

    bạn thử đoạn code sau

    app.post('/upload', function(req, res) {
      if (!req.files)
        return res.status(400).send('No files were uploaded.');
     
      // The name of the input field (i.e. "sampleFile") is used to retrieve the uploaded file 
      let sampleFile = req.files.sampleFile;
     
      // Use the mv() method to place the file somewhere on your server 
      sampleFile.mv('/somewhere/on/your/server/filename.jpg', function(err) {
        if (err)
          return res.status(500).send(err);
     
        res.send('File uploaded!');
      });
    });
    

    Link tham khảo https://www.npmjs.com/package/express-fileupload



  • Nếu bạn sử dụng mongo thì sẽ lưu ảnh trực tiếp vào gridFS Buckets nhé.còn cách làm cụ thể bạn có thể seach gg có rất nhiều cách cho bạn chọn.!



  • Mình không nhớ rõ ràng về cách lắm nhưng mang máng trước làm là sử dụng event onchange của nó nhé. Bạn search "angular 2 value changed" rồi áp dụng thử xem


Log in to reply