jsftp上传糟糕的文件

时间:2020-02-01 20:11:27

标签: javascript node.js ftp node-modules

今天,我对jsftp有问题。 当我运行脚本并且upload.txt为空时, jsftp正确地将一个空文件上传到服务器。 如果upload.txt是utf-8 javascript文件,例如const x = "Hello World!";, jsftp正在上传名为.pureftpd-upload.5e35d750.15.79c5.1b3bbd87的文件,该文件的字节数为0(=无数据)。

这是我的剧本:

var ftp = new jsftp({
            host: "ftp.example.url",
            port: 21,
            user: user.name,
            pass: user.pass
        });
        ftp.auth(user.name, user.pass, function(err){
            if(err){
                openDialog();
                console.error(err);
                throw err;
            }
            else{
                ftp.put(path_datafile, '/directory/hello.js', function(err){
                    console.error(err);
                    throw err;
                });
            }
        });

(输出中没有错误)

对于那些说您需要首先阅读文件的人:

var ftp = new jsftp({
            host: "ftp.example.url",
            port: 21,
            user: user.name,
            pass: user.pass
        });

        fs.readFile(path_datafile, 'utf8', function(err, buff){
            if(err){
                console.log(err);
            }
            else{
                ftp.put(buff, '/directory/hello.js', function(err){
                    console.error(err);
                    throw err;
                });
            }
        });

根本没有工作。 然后显示错误:

Local file doesn't exist

这里的错误是fs模块现在正在转换文件 到utf-8 fs.readfile(file, 'utf8', action)。 要解决该问题,只需写fs.readfile(file, action), 以便以字节为单位输出文件。 该脚本将输出false,但可以正常工作。

所以Ragnar是对的。 当您不使用带有fs的utf8编码时,他的答案是正确的。 不要使用它,它将起作用。

Ragnar: https://stackoverflow.com/users/1052928/ragnar

他的回答: https://stackoverflow.com/a/26939160/12470434

0 个答案:

没有答案