如何将文件上传到远程服务器上的特定文件夹multer-ftp?

时间:2017-05-06 16:59:19

标签: node.js express file-upload multer

使用此代码我尝试在远程服务器上发送文件:

var upload = multer({
    storage: new ftpStorage({
        basepath: '/uploads/',

        ftp: {
            host: 'samplehost.com',
            secure: false, // enables FTPS/FTP with TLS
            user: 'login',
            password: 'password'
        }
    })
});

但始终将文件保存在根目录中,而不是上传,我该如何解决?

1 个答案:

答案 0 :(得分:0)

使用multer-sftp将文件上传到远程服务器是一种简单而灵活的方式,而不是multer-ftp。我们也可以使用节点js中的scp,ssh技术将文件上传到远程服务器。

工作代码:

exports.newFileUpload =  function(req , res , next){

   // sftp settings     
    var storage = sftpStorage({
      sftp: {
        host: 'hostname',
        port: 22,
        username: 'username',
        password: 'password'

      },
      destination: function (req, file, cb) {
        cb(null, 'images/') // designation folder in host
      },
      filename: function (req, file, cb) {
        // file name settings
        cb(null, file.fieldname + '-' + Date.now())
      }
    })

    var upload = multer({ storage: storage }).array('file');

    upload(req,res,function(err){
        logger.debug(JSON.stringify(req.body));
              logger.debug(JSON.stringify(req.files));
          if(err){
               logger.debug("Error Occured", JSON.stringify(err));
               res.json({error_code:1,err_desc:err});
          } else{
               logger.debug("Files uploaded successfully");
              res.json({error_code:0,err_desc:null});
          }
      });
}

注意:使用'multer-sftp'端口时,远程服务器中没有打开22。

官方文件multer-sftp

希望它有所帮助!