Перейти к содержимому

ftp_fput()

Что такое ftp_fput()?

Функция ftp_fput() — это встроенная функция PHP, которая загружает файл на FTP-сервер. Функция принимает пять параметров:

  1. ftp_stream: Идентификатор соединения, возвращаемый функцией ftp_connect().
  2. remote_file: Имя удалённого файла, на который следует загрузить файл.
  3. local_file: Ресурс дескриптора файла, открытый с помощью fopen(), указывающий на локальный файл для загрузки.
  4. mode (необязательно): Режим передачи (FTP_ASCII или FTP_BINARY). По умолчанию FTP_ASCII.
  5. startpos (необязательно): Начальная позиция в удалённом файле для загрузки. По умолчанию 0.

В отличие от ftp_put(), которая принимает строку с путём к локальному файлу, ftp_fput() требует открытый ресурс дескриптора файла.

Функция возвращает логическое значение. Если загрузка файла прошла успешно, она возвращает true. В противном случае — false.

Синтаксис ftp_fput()

Синтаксис функции ftp_fput() выглядит следующим образом:

Синтаксис ftp_fput()

php
bool ftp_fput ( resource $ftp_stream , string $remote_file , resource $local_file [, int $mode = FTP_ASCII [, int $startpos = 0 ]] )

Использование ftp_fput()

Чтобы использовать функцию ftp_fput(), сначала необходимо установить соединение с FTP-сервером с помощью функции ftp_connect(). Вот пример:

Использование ftp_fput() в PHP

php
<?php

// Set up an FTP connection
$conn = ftp_connect('ftp.example.com');
if (!$conn) {
    die("Could not connect to FTP server.");
}

// Login with your FTP credentials
if (!ftp_login($conn, 'username', 'password')) {
    die("Login failed.");
}

// Open the local file
$local_file = fopen('/local/directory/local_file.txt', 'r');
if (!$local_file) {
    die("Could not open local file.");
}

// Upload the file to the remote FTP server
if (ftp_fput($conn, 'remote_file.txt', $local_file, FTP_ASCII)) {
    echo "File uploaded successfully.\n";
} else {
    echo "Failed to upload the file.\n";
}

// Close the file handle and FTP connection
fclose($local_file);
ftp_close($conn);

В этом примере мы устанавливаем соединение с FTP-сервером с помощью функции ftp_connect() и проверяем его успешность. Затем мы входим в систему, используя учётные данные FTP, с помощью ftp_login() и проверяем наличие ошибок. Далее мы открываем локальный файл с помощью fopen(), чтобы получить необходимый дескриптор файла. Наконец, мы загружаем файл на удалённый FTP-сервер с помощью ftp_fput() и закрываем как дескриптор файла, так и FTP-соединение.

Обработка ошибок в ftp_fput()

Важно правильно обрабатывать ошибки при использовании функции ftp_fput(). Если функция возвращает false, это означает, что файл не удалось загрузить по какой-либо причине. Вот пример обработки ошибок:

Обработка ошибок в ftp_fput()

php
<?php

// Assuming $conn is already established via ftp_connect() and ftp_login()
$local_file = fopen('/local/directory/local_file.txt', 'r');
if ($local_file && ftp_fput($conn, 'remote_file.txt', $local_file, FTP_ASCII) === false) {
    echo "Failed to upload the file.\n";
} else {
    echo "File uploaded successfully.\n";
}
fclose($local_file);

В этом примере мы проверяем возвращаемое значение функции ftp_fput(). Если оно равно false, мы выводим сообщение об ошибке; в противном случае — сообщение об успехе. Всегда не забывайте закрывать дескриптор файла с помощью fclose() после выполнения операции.

Заключение

Функция ftp_fput() — это полезная встроенная функция PHP, которая позволяет загружать файлы на FTP-сервер. Следуя рекомендациям и лучшим практикам, описанным в этой статье, вы сможете уверенно использовать функцию ftp_fput() в своих PHP-проектах.

Практика

Что делает функция fput в PHP?

Считаете ли это полезным?

Предпросмотр dual-run — сравните с маршрутами Symfony на продакшене.