使用 PHP 通过 SFTP 上传图片正在上传一个 0 字节的文件

Upload image via SFTP put using PHP is uploading an 0 bytes file

我正在尝试使用 PHP 和 HTML 形式将图像上传到远程 SFTP 服务器以获取文件。文件上传成功,但是当我检查目录时,文件有 0 个字节(或只有 1 个字节)。

我已经检查了 php.ini "upload_max_filesize" 没问题。我已经尝试了很多代码,但它仍然是一样的。这是代码的一部分:

    include('remote_conexion.php'); //this file already has the include SFTP.php and the connection

    $foto = ($_FILES['avatar']['name']);
// Upload file
$sftp->put('/home/user/images/avatars/',$foto, NET_SFTP_LOCAL_FILE);

这是上传到服务器的文件的截图。就1个字节,我不知道该怎么办。 https://prnt.sc/pj9ng1

来自 PHP Docs:

$_FILES['userfile']['name']
//The original name of the file on the client machine.

$_FILES['userfile']['tmp_name']
//The temporary filename of the file in which the uploaded file was stored on the 
server.

只需将 "name" 更改为 "tmp_name",但在此之后或之前您必须 rename 文件,因为临时文件名很难看

问题解决了!我只需要用 tmp_name 添加另一个变量并将其添加到我的 sftp->put 这是代码:

$foto = ($_FILES['avatar']['name']);
$foto2 = ($_FILES['avatar']['tmp_name']);
$sftp->put('/home/natalia/images/avatars/'.$foto, $foto2 , NET_SFTP_LOCAL_FILE);