我正在尝试创建一个网页,一个人可以在其中上传图片,并将该图片存储在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);
});
};
您需要req.files.profilePicture
先将的内容转换为二进制文件,然后再上传到S3
。
var binaryProfilePicture = new Buffer(req.files.profilePicture, "binary");
db.putInBucket("bucket", "key" + ".png", binaryProfilePicture );
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句