Загрузить изображение через SFTP, положить с помощью PHP загружает файл 0 байт - PullRequest
0 голосов
/ 15 октября 2019

Я пытаюсь загрузить изображение на удаленный SFTP-сервер, используя PHP и HTML-форму для получения файла. Файл успешно загружен, но когда я проверяю каталог, файл имел 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

Ответы [ 2 ]

2 голосов
/ 15 октября 2019

Я решил проблему! Мне просто нужно добавить еще одну переменную с именем tmp_ и добавить это в мой sftp-> put. Вот код:

$foto = ($_FILES['avatar']['name']);
$foto2 = ($_FILES['avatar']['tmp_name']);
$sftp->put('/home/natalia/images/avatars/'.$foto, $foto2 , NET_SFTP_LOCAL_FILE);
1 голос
/ 15 октября 2019

Из PHP Документы :

$_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", но после или до этого вам нужно переименовать файл,потому что временные имена файлов ужасны

...