2016-02-17 80 views
0

通過使用這些簡單的幾行代碼,我已將文件保存在服務器上。如何使用express multer加密文件

router.post('/upload', upload.single('file'), function(req: Request, res: Response, next: Function) { 
    console.log(req.file); 
    res.json({ success: true, message: 'Uploaded' }); 
}); 

我想在文件被保存前加密文件。

有什麼辦法可以做到嗎?

+0

使用什麼問題密碼模塊? https://nodejs.org/api/crypto.html –

回答

1
  • Multer提供了一套豐富,可以給你在你的文件上傳更好
    控制的事件。

因此,執行的順序是:

  1. onParseStart
  2. onFileUploadStart/onFileUploadData ...
  3. onFileUploadComplete
  4. onParseEnd

所以,你的情況你的加密proccess應在onFileUploadComplete做這樣的事情:

var fs = require('fs');  
    var encryptor = require('file-encryptor'); 
    var key = 'My Super Secret Key';   
    app.use(multer({  
      onFileUploadComplete: function (file) { 
       console.log(file.fieldname + ' uploaded to ' + file.path); 
      // Encrypt file. 
       encryptor.encryptFile(file, 'encryptedFile.dat', key, function(err) { 
        // Encryption complete.remove original file 
        fs.unlink(file); 
         }); 
         } 
        }));