2016-07-21 9 views
0

I Laden Sie haben ein Bild von meinem Knoten js Bahn S3, mit diesem Code:Mein Bild in S3 nicht anzeigen. Was ist los mit dir?

router.post('/uploadtest', multipartMiddleware, function(req, res, next) { 

    var file = req.files.file; 

    var data = {Key: file.originalFilename, Body: file.path, ContentType: file.type, ACL: 'public-read'}; 

    s3Bucket.putObject(data, function(err, data) { 
     if (err) 
     { console.log('Failed!'); 
      res.redirect("/lookpic?url=null"); 
     } else { 
      console.log('Success!'); 
      var urls = 'https://'+sendurl+'.amazonaws.com/'+myBucket+'/'+file.originalFilename 
      res.redirect("/lookpic?url="+urls); 
     } 
    }); 
}); 

Und es ist Arbeit, mein Bild zu meinem S3 Eimer gespeichert, aber wenn ich auf den Link klicken mein Bild zu sehen, das ist das Ergebnis: http://i.stack.imgur.com/qAM5N.png

Was ist los mit meinem Schritt?

Antwort

0

Sie geben nur den Dateipfad im body-Attribut an, während die Dateidaten im body-Attribut angegeben werden sollen. Versuchen Sie Folgendes:

var fs = require('fs'); 
router.post('/uploadtest', multipartMiddleware, function(req, res, next) { 

    var file = req.files.file; 
    var file_data = fs.readFileSynch(file.path); 
    var data = {Key: file.originalFilename, Body: file_data, ContentType: file.type, ACL: 'public-read'}; 

    s3Bucket.putObject(data, function(err, data) { 
     if (err) 
      { console.log('Failed!'); 
      res.redirect("/lookpic?url=null"); 
     } else { 
      console.log('Success!'); 

      // remove the uploaded file if you want to 
      fs.unlink(file.path, function(err) { 
       if (err) throw err; 
      }); 
     // 

      var urls = 'https://'+sendurl+'.amazonaws.com/'+myBucket+'/'+file.originalFilename 
      res.redirect("/lookpic?url="+urls); 
     } 
    }); 
}); 

Verwenden Sie das fs-Modul, um synchron die zu ladende Datei zu lesen. Diesen Link abfragen: https://nodejs.org/api/fs.html

Verwandte Themen