PHP 7 SFTPはファイルをダウンロードし、そのダウンロードファイルの名前を変更する
SFTPクラス
sftpサービス上のファイルをダウンロードするインタフェースのファイルは、対応するパラメータを転送します.sftpサーバにファイルがあるかどうかを検出する必要がある場合は、自分で処理してください.
'',//sftp
'port' => ,//sftp
'username' => '', //sftp
'password' => '' //sftp
];
// NULL
private $conn = NULL;
//
public function __construct()
{
$this->connect();
}
public function connect()
{
$this->conn = ssh2_connect($this->config['host'], $this->config['port']); //
if(!ssh2_auth_password($this->conn, $this->config['username'], $this->config['password']))
{
echo json_encode([
'code' => 500,
'msg' => ' ',
'data' => null
]);die;
}
}
// ,
public function downftp($remote, $local)
{
$ressftp = ssh2_sftp($this->conn);
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='."ssh2.sftp://".$ressftp."/upload/".$remote);
header('Content-Transfer-Encoding: binary');
Header("Accept-Ranges: bytes");
header('Content-Disposition: attachment; filename=' . $local);
header('Content-Type: application/octet-stream; name=' . $local);
readfile("ssh2.sftp://".$ressftp."/upload/".$remote);
/**
* sftp ,
*/
//return copy("ssh2.sftp://".$ressftp."/upload/".$remote, __DIR__.'/../../public/'.$local);
//return copy("ssh2.sftp://".$ressftp."/upload/".$remote, $local);
//return ssh2_scp_recv($this->conn, $remote, $local);
}
// , ftp
public function upftp( $local,$remote, $file_mode = 0777)
{
$ressftp = ssh2_sftp($this->conn);
return copy($local,"ssh2.sftp://{$ressftp}".'gongwenliuzhuan/upload/'.$remote);
}
}
sftpサービス上のファイルをダウンロードするインタフェースのファイルは、対応するパラメータを転送します.sftpサーバにファイルがあるかどうかを検出する必要がある場合は、自分で処理してください.
500,
'msg' => 'sftpFileName is null',
'data' => null
]);die;
}
//
//$down_name = __DIR__.'/../../../public/'.$sftp_name;
//
$new_name = trim($_GET['new_name']);
//
$type = strtolower(trim($_GET['type']));
if ($new_name == ''){
echo json_encode([
'code' => 500,
'msg' => 'newFileName is null',
'data' => null
]);die;
}
if ($type == ''){
echo json_encode([
'code' => 500,
'msg' => 'fileType is null',
'data' => null
]);die;
}
$down_name = $new_name.'.'.$type;
$my_sftp->downftp($sftp_name,$down_name);