如何使用Express multer加密文件 [英] How to encrypt file using express multer

查看:106
本文介绍了如何使用Express multer加密文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

通过这些简单的几行代码,我已经将文件保存在服务器上.

By having these simple few lines of code I've got file saved on server.

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

我想在保存文件之前对其进行加密.

I want to encrypt the file before it is get saved.

有什么办法可以做到吗?

Is there any way I can do that?

推荐答案

  • Multer提供了丰富的事件集,可以为您提供更好的服务
    控制文件上传.
    • Multer provides a rich set of events which can give you better
      control over your file uploads.
    • 因此,执行顺序为:

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

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

      因此,在这种情况下,您应该通过以下操作将加密过程保存在 onFileUploadComplete 中:

      So,in your case your encrypting proccess should be in onFileUploadComplete by doing something like this:

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

      这篇关于如何使用Express multer加密文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆