Загрузить изображение с html входа в корзину S3 - PullRequest
1 голос
/ 12 января 2020

Я пытаюсь создать веб-страницу, где человек может загрузить изображение, и это изображение сохраняется в корзине S3. В настоящее время я получаю эту ошибку: «Неподдерживаемый объект полезной нагрузки тела» при загрузке в корзину S3.

Вот мой соответствующий HTML:

<form enctype="multipart/form-data" action="/editprofile" method="post">
   <input type="file" value="Change Profile Picture" name="profilePicture" id="profilePicture" >
</form>

Вот мой соответствующий JS код:

//in app.js
const fileupload = require("express-fileupload");
app.use(fileupload());
app.post('/editprofile', function(req, res) {
  routes.editprofile(req, res);
});

//in routes.js in editprofile function
db.putInBucket("bucket", "key" + ".png", req.files.profilePicture);

//in db in putInBucket
var putInBucket = function (bucket, key, file) {
  var upload = new AWS.S3.ManagedUpload({
    params: {
      Bucket: bucket,
      Key: key,
      Body: file
    }
  });

  var promise = upload.promise();
  promise.catch(function(error) {
    console.log("Error in uploading to S3" + error);
  });
};

1 Ответ

2 голосов
/ 13 января 2020

Вам необходимо преобразовать содержимое req.files.profilePicture в двоичный файл перед загрузкой в ​​S3.

var binaryProfilePicture = new Buffer(req.files.profilePicture, "binary");

db.putInBucket("bucket", "key" + ".png", binaryProfilePicture );

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...