Как использовать ftp_put для загрузки файлов в PHP? - PullRequest
0 голосов
/ 29 мая 2019

Я пытаюсь загрузить файл, используя ftp_put после отправки формы.Однако мой код не работает должным образом:

$ftpHost   = '192.168.180.36';
$ftpUsername = 'userdownload';
$ftpPassword = 'Toms!';
$filepath = "C://xampp/htdocs/Helpdesk/fmt/download";
$connId = ftp_connect($ftpHost,21) or die("Couldn't connect to $ftpHost");
$ftpLogin = ftp_login($connId, $ftpUsername, $ftpPassword);

$file_name = $_FILES['file']['name'][$i];
$tmp_name = $_FILES['file']['tmp_name'][$i];
// try to upload file
if(ftp_put($connId, $file_name, $filepath.'/'.$file_name, FTP_BINARY)){
    echo "File transfer successful - $file_name";
}else{
    echo "There was an error while uploading $file_name";
}       

И я получаю это сообщение об ошибке:

Произошла ошибка при загрузке $ file_name

1 Ответ

0 голосов
/ 29 мая 2019

В вашем коде я заметил две вещи. Первый способ передачи зависит от типа вашего файла. Файлы, которые находятся в списке расширений ascii / text, передаются как ascii, все остальные файлы передаются в двоичном формате. Второй может быть проблема в вашем файл, который вы получили, может быть, это черный, сначала проверьте это. Вы можете попробовать этот код, он работает для меня.

  <?php
    // connect and login to FTP server
    $ftp_server = "ftp.example.com";
    $ftp_conn = ftp_connect($ftp_server) or die("Could not connect to $ftp_server");
    $login = ftp_login($ftp_conn, $ftp_username, $ftp_userpass);

    $file = "localfile.txt";

    // upload file
    if (ftp_put($ftp_conn, "serverfile.txt", $file, FTP_ASCII))
      {
      echo "Successfully uploaded $file.";
      }
    else
      {
      echo "Error uploading $file.";
      }
    // close connection
    ftp_close($ftp_conn);
    ?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...