フォームからs3バケットに画像をアップロードする際に問題が発生しました。現在、画像の一部がアップロードされているため、たとえば272kb全体ではなく19kbをバケット内から開こうとすると、画像が壊れます。
app.post('/admin/addClub', (req, res) => {
if (!req.user) {
res.redirect('/admin');
return;
}
// Upload image to S3
var s3Bucket = new AWS.S3( { params: {Bucket: process.env.AWS_BUCKET, Key: process.env.AWS_ACCESS_KEY_ID} } )
var data = { Key: req.body.imageBanner, // file from form
Body: req.body.imageBanner, // Not sure here
ACL: "public-read",
ContentType: helper.getContentTypeByFile(req.body.imageBanner)
};
s3Bucket.putObject(data, function(err, data){
if (err)
{ console.log('Error uploading data: ', data);
res.redirect('/admin/main');
} else {
console.log('succesfully uploaded the image!');
res.redirect('/admin/main');
}
});
誰かが私がBody
鍵のために通過する必要があるものをアドバイスできますか?これは私の問題だと思うので
ありがとう
Expressでファイルアップロードを受信できるようにするexpress-fileuploadパッケージを統合する必要があります。
runをインストールするには: npm install --save express-fileupload
次に、パラメータとして渡す必要がありますreq.files.imageBanner.data
(ファイルアップロードフィールドが次のようになっていると仮定します<input name="imageBanner" type="file" />
)Body
。外観は次のとおりです。
var fileUpload = require('express-fileupload');
app.use(fileUpload());
app.post('/admin/addClub', (req, res) => {
if (!req.user) {
res.redirect('/admin');
return;
}
// Upload image to S3
var s3Bucket = new AWS.S3( { params: {Bucket: process.env.AWS_BUCKET, Key: process.env.AWS_ACCESS_KEY_ID} } )
var data = { Key: req.body.imageBanner, // file from form
Body: req.files.imageBanner.data,
ACL: "public-read",
ContentType: helper.getContentTypeByFile(req.body.imageBanner)
};
s3Bucket.putObject(data, function(err, data){
if (err)
{ console.log('Error uploading data: ', data);
res.redirect('/admin/main');
} else {
console.log('succesfully uploaded the image!');
res.redirect('/admin/main');
}
});
});
express-fileuploadパッケージのドキュメントは次の場所にあります。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加