Задать вопрос

Почему не работает ftp_put?

Добрый день, уважаемые знатоки. При попытке загрузки файла на сервер через ftp возникает вот эта ошибка:
Warning: ftp_put(): listen() failed: Operation not permitted (1) in /public_html/test1.php on line 57
строка $upload = ftp_put($conn_id, $path, $filep, FTP_BINARY);
Switching to Binary mode. in /public_html/test1.php on line 60 Error: FTP upload has failed!
кто нибудь объясните, ЧО происходит)))
Любителей отправлять в гугл, прошу не беспокоить)))
<form action="test1.php" method="POST" enctype="multipart/form-data" >
 <table align="center">
 <tr>
 <td align="right">Current server:</td>
 <td><input size="50" type="text" name="server" value=""></td>
 </tr>
 <tr>
 <td align="right">Username:</td>
 <td><input size="50" type="text" name="user"  value="">
 </td>
 </tr>
 <tr>
 <td align="right">Password:</td>
 <td><input size="50" type="text" name="password" value="" ></td>
 </tr>
 <tr>
 <td align="right">Path on the Server:</td>
 <td><input size="50" type="text" name="pathserver" ></td>
 </tr>
 <tr>
 <td align="right">Select File to Upload:</td>
 <td><input name="userfile" type="file" size="50"></td>
 </tr>
 </table>
 <table align="center">
 <tr>
 <td align="center"><input type="submit" name="submit"></td>
 </tr>
 </table>
</form>

error_reporting(E_ALL);
$filep = $_FILES['userfile']['tmp_name']; 
$ftp_server = $_POST['server'];
$ftp_user_name = $_POST['user'];
$ftp_user_pass = $_POST['password']; 
$paths = $_POST['pathserver'];
$ftp_port= 21;
//имя файла на сервере после того, как вы его загрузите
$name = $_FILES['userfile']['name'];
$conn_id = ftp_connect($ftp_server,$ftp_port);
// входим при помощи логина и пароля
if($conn_id){
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);}
// проверяем подключение
if ((!$conn_id) || (!$login_result)) {
       echo "FTP connection has failed!";
       echo "Attempted to connect to $ftp_server for user: $ftp_user_name";
       exit;
   } else {
       echo "Connected to $ftp_server, for user: $ftp_user_name </br>";
   }
   $path="/".$paths.'/'.$name;
 
// загружаем файл
 
$upload = ftp_put($conn_id, $path, $filep, FTP_BINARY);
// проверяем статус загрузки
if (!$upload) {
       echo "Error: FTP upload has failed!";
   } else{
       echo "Good: Uploaded $name to $ftp_server";
   }
ftp_close($conn_id);
set_time_limit(30);
  • Вопрос задан
  • 5138 просмотров
Подписаться 2 Оценить Комментировать
Решения вопроса 1
BuriK666
@BuriK666
Компьютерный псих
Проблема в нехватке прав.
Используйте пассивный режим FTP
php.net/manual/ru/function.ftp-pasv.php
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
thewind
@thewind
php программист, front / backend developer
Так вроде ошибка в именовании переменных...
$paths = $_POST['pathserver'];
и
ftp_put($conn_id, $path, $filep, FTP_BINARY);

получаем $paths vs $path, путь не найден, upload не прошел.
Может в этом дело?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы