За последние 24 часа нас посетили 17013 программистов и 1745 роботов. Сейчас ищут 929 программистов ...

Помогите разобраться с загрузкой файла с помощью FTP

Тема в разделе "PHP для новичков", создана пользователем vano007, 2 июл 2010.

  1. vano007

    vano007 Активный пользователь

    С нами с:
    24 ноя 2009
    Сообщения:
    37
    Симпатии:
    0
    У меня упорно не хочет работать представленный ниже скрипт, выдает ошибку
    "Warning: ftp_put() [function.ftp-put]: Can't open that file: No such file or directory in /home/user/public_html/upl.php on line 78
    FTP upload has encountered an error!"

    С FTP сервером прекрасно соединяется, но потом вылезает та ошибка.

    Я подозреваю что проблема здесь:
    PHP:
    1. $paths='/home/user/public_html';
    Я не совсем понимаю в каком виде там надо указывать путь.

    Вот весь код:

    PHP:
    1. <html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="ru-RU">
    2. <head profile="http://gmpg.org/xfn/11">
    3. <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
    4. <title>Загрузка на FTP</title>
    5. <style type="text/css">
    6. #center {
    7.  width: 100%;
    8.  padding: 10px; /* Поля вокруг текста */
    9.  margin: 0 auto; /* Выравниваем по центру */
    10.  background: #fc0; /* Цвет фона */
    11.  margin-top: 10%;
    12.  text-align: center;
    13. }
    14. </style>
    15. </head>
    16. <? if(!isset($_POST["submit"])){?>
    17. <div id=center>
    18. <form action="upl.php" method="POST" enctype="multipart/form-data">
    19. <table align="center">
    20. <tr>
    21. <td align="right">
    22. <b>Выберите файл:</b>
    23. </td>
    24. <td>
    25. <input name="userfile" type="file" size="50">
    26. </td>
    27. </tr>
    28. </table>
    29. <table align="center">
    30. <tr>
    31. <td align="center">
    32. <input type="submit" name="submit" value="Загрузить" />
    33. </td>
    34. </tr>
    35. <tr>
    36. <td align="center">
    37. <small>Файлы на сервере хранятся <b>не более 7 дней</b>. Ограничение на размер файла <b>100Mb</b></small>
    38. </td>
    39. </tr>
    40. </table>
    41. </form>
    42. <?}
    43. else
    44. {
    45.  
    46. //      set_time_limit(50000);//for uploading big files
    47.  
    48. $paths='/home/user/public_html';
    49.  
    50. $filep=$_FILES['userfile']['tmp_name'];
    51.  
    52. $ftp_server='мой_сервер';
    53.  
    54. $ftp_user_name='логин';
    55.  
    56. $ftp_user_pass='пароль';
    57.  
    58. $name=$_FILES['userfile']['name'];
    59.  
    60. // set up a connection to ftp server
    61. $conn_id = ftp_connect($ftp_server);
    62.  
    63. // login with username and password
    64. $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
    65.  
    66. // check connection and login result
    67. if ((!$conn_id) || (!$login_result)) {
    68.  echo "FTP connection has encountered an error!";
    69.  echo "Attempted to connect to $ftp_server for user $ftp_user_name....";
    70.  exit;
    71.  } else {
    72.  //   echo "Connected to $ftp_server, for user $ftp_user_name".".....";
    73.  echo "<div id=center>";
    74.  echo "Соединение с сервером $ftp_server прошло удачно...<br>";
    75.  }
    76.  
    77. // upload the file to the path specified
    78. $upload = ftp_put($conn_id, $paths.'/'.iconv("UTF-8","CP1251",$name), $filep, FTP_BINARY);
    79.  
    80. // check the upload status
    81. if (!$upload) {
    82.  echo "FTP upload has encountered an error!";
    83.  } else {
    84.  //    echo "Uploaded file with name $name to $ftp_server ";
    85.  echo "<b>Ваша ссылка:</b> $ftp_server/$paths/$name";
    86.  echo "</div>";
    87.  }
    88.  
    89. // close the FTP connection
    90. ftp_close($conn_id);
    91.  
    92. }
    93. ?>
    94. </div>
    95. </html>
     
  2. ShamahN

    ShamahN Активный пользователь

    С нами с:
    10 апр 2007
    Сообщения:
    1.449
    Симпатии:
    0
    Адрес:
    г.Волгодонск Роствской обл.
  3. jenya77

    jenya77 Активный пользователь

    С нами с:
    9 фев 2010
    Сообщения:
    4
    Симпатии:
    0
    А ты верно прописал путь /home/user/public_html? У меня на ФТП нет таких папок
     
  4. vano007

    vano007 Активный пользователь

    С нами с:
    24 ноя 2009
    Сообщения:
    37
    Симпатии:
    0
    Да всё уже, разобрался, действительно надо просто было правильно прописать :)
    А как сделать так, чтобы имя загружаемого файла записывалось в БД?
    Вот мой скрипт загрузки (там ближе к концу мой код записи мени файла в БД)
    PHP:
    1. <html xmlns="http://www.w3.org/1999/xhtml"; dir="ltr" lang="ru-RU">
    2. <head profile="http://gmpg.org/xfn/11">;
    3. <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
    4. <title>Загрузка на FTP</title>
    5. <style type="text/css">
    6. #center {
    7.  width: 100%;
    8.  padding: 10px; /* Поля вокруг текста */
    9.  margin: 0 auto; /* Выравниваем по центру */
    10.  background: #fc0; /* Цвет фона */
    11.  margin-top: 10%;
    12.  text-align: center;
    13. }
    14. </style>
    15. </head>
    16. <? if(!isset($_POST["submit"])){?>
    17. <div id=center>
    18. <form action="upl.php" method="POST" enctype="multipart/form-data">
    19. <table align="center">
    20. <tr>
    21. <td align="right">
    22. <b>Выберите файл:</b>
    23. </td>
    24. <td>
    25. <input name="userfile" type="file" size="50">
    26. </td>
    27. </tr>
    28. </table>
    29. <table align="center">
    30. <tr>
    31. <td align="center">
    32. <input type="submit" name="submit" value="Загрузить" />
    33. </td>
    34. </tr>
    35. <tr>
    36. <td align="center">
    37. <small>Файлы на сервере хранятся <b>не более 7 дней</b>. Ограничение на размер файла <b>100Mb</b></small>
    38. </td>
    39. </tr>
    40. </table>
    41. </form>
    42. <?}
    43. else
    44. {
    45.  
    46. // set_time_limit(50000);//for uploading big files
    47.  
    48. $paths='images';
    49.  
    50. $filep=$_FILES['userfile']['tmp_name'];
    51.  
    52. $ftp_server='---';
    53.  
    54. $ftp_user_name='---';
    55.  
    56. $ftp_user_pass='---';
    57.  
    58. $name=$_FILES['userfile']['name'];
    59.  
    60.  
    61.  
    62.  
    63. // set up a connection to ftp server
    64. $conn_id = ftp_connect($ftp_server);
    65.  
    66. // login with username and password
    67. $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
    68.  
    69. // check connection and login result
    70. if ((!$conn_id) || (!$login_result)) {
    71.  echo "FTP connection has encountered an error!";
    72.  echo "Attempted to connect to $ftp_server for user $ftp_user_name....";
    73.  exit;
    74.  } else {
    75.  // echo "Connected to $ftp_server, for user $ftp_user_name".".....";
    76.  echo "<div id=center>";
    77.  echo "Соединение с сервером $ftp_server прошло удачно...<br>";
    78.  }
    79.  
    80. // upload the file to the path specified
    81. $upload = ftp_put($conn_id, $paths.'/'.iconv("UTF-8","CP1251",$name), $filep, FTP_BINARY);
    82.  
    83. // check the upload status
    84. if (!$upload) {
    85.  echo "FTP upload has encountered an error!";
    86.  } else {
    87.  // echo "Uploaded file with name $name to $ftp_server ";
    88.  echo "<b>Ваша ссылка:</b> $ftp_server/$paths/$name";
    89.  echo "</div>";
    90.  
    91.  
    92. // Запись названия загружаемого файла в БД. Я правильно код этот написал?:
    93. $server="localhost";
    94. $user="---";
    95. $pass="---";
    96. $DB="---";
    97. $image_name=$name;
    98. mysql_connect($server,$user,$pass) or die("Нет коннекта!" ;
    99. mysql_query("Insert INTO mages(image_name) VALUES('".addslashes($image_name)."' " ;
    100. echo "Всё прошло удачно!";
    101.  }
    102.  
    103. // close the FTP connection
    104. ftp_close($conn_id);
    105.  
    106. }
    107. ?>
    108. </div>
    109. </html>