对multer上的加密文件和文件路径感到困惑

时间:2017-08-10 05:55:06

标签: node.js express multer

我对如何使用multer加密文件本身和文件路径感到困惑。我发现这篇文章关于加密文件本身:How to encrypt file using express multer,但我的代码没有工作,因为它没有加密文件。我有这个:

var fs = require('fs');       
var encryptor = require('file-encryptor');
var key = 'My Super Secret Key';     

var storage = multer.diskStorage({
    destination: function(req, file, cb) {
        cb(null, './uploads/'); // Make sure this folder exists
    },
    filename: function(req, file, cb) {
        var ext = file.originalname.split('.').pop();
        cb(null, file.originalname);
    }

}),
upload = 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);
                     });
                   }, storage: storage }).single('uploadedFileField');

第二点:我无法找到任何资源来了解如何加密文件路径。

1 个答案:

答案 0 :(得分:0)

我认为您必须将file.path代替file添加到encryptor.encryptFile

我已查找源代码,encryptor.encryptFile将字符串作为第一个参数。

encryptor.encryptFile(file.path, 'encryptedFile.dat', key, callback);