当我上传文件时,它将在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
答案 0 :(得分:0)
现在您正在创建一个文件,其内容基本上就是文件名本身。
试试这个:
$s = $sftp->put($filename, $file.$filename, SFTP::SOURCE_LOCAL_FILE);