上传到sFTP服务器时文件已损坏

时间:2018-01-26 08:36:25

标签: php sftp phpseclib

当我上传文件时,它将在laravel存储中转换为.zip(未损坏,仍然可以导出)但是当我使用 sFTP 将其上传到我们的服务器时以及当我解压缩.zip文件时在服务器中,它变成了一个损坏的.zip文件。

            $sftp = new SFTP($this->api_host);
            if(!$sftp->login($this->ftp_user, $this->ftp_password)) {
                return false;
            }

要上传的文件路径

            $file = base_path().$this->destinationPathZipped;

在服务器中创建文件夹

            $sftp->mkdir($tempFolder);

更改临时文件夹的权限

            $sftp->chmod(0777, $tempFolder, true);

将目录更改为文件夹

            $sftp->chdir($sftp->pwd().'/'.$tempFolder.'/');

使用sftp上传文件 $ filename = zip文件的名称(例如:ZCW123.zip)

            $s = $sftp->put($filename, $file.$filename);

上面的代码是我在服务器中使用sftp上传文件的方式。 我使用的是phpseclib / sftp,我的laravel的版本是5.1

echo $sftp->getSFTPLog()之后的$sftp->put()https://imgur.com/a/hQ0H9

1 个答案:

答案 0 :(得分:0)

现在您正在创建一个文件,其内容基本上就是文件名本身。

试试这个:

$s = $sftp->put($filename, $file.$filename, SFTP::SOURCE_LOCAL_FILE);