2017-02-15 31 views
0

イメージをフォームからs3バケットにアップロードする際に問題が発生しています。私は試してみて、私のバケツの中にそれが壊れてから画像を開いた場合、画像の現在の一部では、代わりに完全な272キロバイトの例の19キロバイトのためので、アップロードされますイメージをs3バケットノードにアップロードjs

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キー?私は、これは私の問題でなければなりません

おかげ

+0

これはビットオフトピックですが、 'res.redirectが(」という/ admin/main '); 'がifの外側にある可能性があります。 – JonyD

答えて

2

考えるとあなたがExpressでファイルのアップロードを受け取ることができ特急 - ファイルアップロードパッケージを統合する必要があります。実行インストールするには

npm install --save express-fileupload

を次に、Bodyパラメータとして(ファイルアップロードフィールドを想定すると、<input name="imageBanner" type="file" />のように見える)req.files.imageBanner.dataに合格する必要があります。ここではそれがどのように見えるべきかです:

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'); 
    } 
    }); 
}); 

あなたがここに急行、ファイルアップロードパッケージのドキュメントを見つけることができます。

https://www.npmjs.com/package/express-fileupload

+0

ありがとう、私はパッケージ – Richlewis

+0

を見ています確かに、それをチェックして、それがどのように働いていたか教えてください。 – ablopez

+0

私は '' null '、 'imageBanner'の'のヌルのimageBanner'プロパティを読み取ることができません。 – Richlewis

関連する問題