Top.Mail.Ru
Ответы

Отправка файла на FTP клиент PHP Devel Studio

Здравствуйте, подскажите, пожалуйста, я создал облачный сервис в PHP Devel Studio 2.0, как сделать так, чтобы после выбора файла и нажатия кнопки "Загрузить", файл отправлялся в FTP клиент в определенную папку и в любой момент можно было его оттуда скачать или взять ссылку на этот файл, например ссылка: http://сайт.ру/cloud/file.rar

Никак не могу найти инфу, читал что нужно через php_curl.dll, но честно, не понял как это реализовать.

Код на кнопку "Загрузить" такой:

1234567891011121314151617181920
 if (c("check")->checked) { 
messageDlg("Ваш файл успешно загружен!", mtInformation, MB_OK); 
} else { 
messageDlg("Вы не отметили флажок!", mtError, MB_OK); 
} 
 
$files = c("edit1")->text; 
$upload = '$files';  
 $postdata = array( 'name' => 'Resh', 
  'upload' => "@".$upload ); 
 
 $ch = curl_init(); 
 curl_setopt($ch, CURLOPT_URL, 'http://srv193402.hoster-test.ru/xcloud/getfile.php');
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0); 
 curl_setopt($ch, CURLOPT_POST, 1); 
 curl_setopt($ch, CURLOPT_POSTFIELDS, $postdata); 
 curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30); 
 curl_exec($ch); 
 curl_close($ch);
 

Регистрацию через FTP сделать удалось, а вот отправку файлов не могу, ломаю голову уже 3-й час, прошу помощи.
Программа выглядит так:

По дате
По Рейтингу
Аватар пользователя
Мыслитель

Для отправки файла на FTP сервер в PHP с использованием библиотеки cURL, вам необходимо настроить соответствующие параметры и вызвать соответствующие функции cURL. Вот пример кода, который может помочь вам в реализации:

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$fileToUpload = $_FILES["fileToUpload"]["tmp_name"];
$fileName = $_FILES["fileToUpload"]["name"];

$ftpServer = "ftp.example. com"; # Поставил пробел перед "com" не пропускает майл
$ftpUsername = "your-ftp-username";
$ftpPassword = "your-ftp-password";
$ftpDirectory = "/path/to/ftp/directory/";

$ftpUrl = "ftp:// $ftpUsername:$ftpPassword@$ftpServer/$ftpDirectory/$fileName"; # Поставил пробел после "//" не пропускает майл

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $ftpUrl);
curl_setopt($ch, CURLOPT_UPLOAD, 1);
curl_setopt($ch, CURLOPT_INFILESIZE, filesize($fileToUpload));
curl_setopt($ch, CURLOPT_INFILE, fopen($fileToUpload, "r"));

$result = curl_exec($ch);

if ($result) {
echo "Файл успешно загружен на FTP сервер.";
// Можно сохранить ссылку на файл или выполнить другие действия
} else {
echo "Ошибка при загрузке файла на FTP сервер.";
}

curl_close($ch);
}
?>

<form method="post" enctype="multipart/form-data">
<input type="file" name="fileToUpload" id="fileToUpload">
<input type="submit" value="Загрузить" name="submit">
</form>

В этом примере мы используем элемент <input type="file"> для выбора файла для загрузки. После отправки формы, файл будет доступен в PHP через массив $_FILES. Мы получаем путь к временному файлу ($fileToUpload) и имя файла ($fileName).

Затем мы настраиваем параметры FTP сервера ($ftpServer, $ftpUsername, $ftpPassword) и указываем путь к папке на сервере ($ftpDirectory), в которую вы хотите загрузить файл.

Далее мы создаем URL для FTP соединения ($ftpUrl), который включает данные для аутентификации и путь к файлу на сервере.

Затем мы используем функции cURL для загрузки файла на FTP сервер. Мы настраиваем URL, указываем параметр CURLOPT_UPLOAD в значение 1, указываем размер файла (CURLOPT_INFILESIZE) и передаем файл для загрузки (CURLOPT_INFILE).

По результату выполнения запроса (curl_exec) мы можем вывести соответствующие сообщения об успешной или неудачной загрузке.

Обратите внимание, что вам нужно заменить значения переменных $ftpServer, $ftpUsername, $ftpPassword, $ftpDirectory на фактические значения для вашего FTP сервера.

Надеюсь, это поможет вам реализовать отправку файла на FTP сервер.