У меня упорно не хочет работать представленный ниже скрипт, выдает ошибку "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: $paths='/home/user/public_html'; Я не совсем понимаю в каком виде там надо указывать путь. Вот весь код: PHP: <html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="ru-RU"> <head profile="http://gmpg.org/xfn/11"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" /> <title>Загрузка на FTP</title> <style type="text/css"> #center { width: 100%; padding: 10px; /* Поля вокруг текста */ margin: 0 auto; /* Выравниваем по центру */ background: #fc0; /* Цвет фона */ margin-top: 10%; text-align: center; } </style> </head> <? if(!isset($_POST["submit"])){?> <div id=center> <form action="upl.php" method="POST" enctype="multipart/form-data"> <table align="center"> <tr> <td align="right"> <b>Выберите файл:</b> </td> <td> <input name="userfile" type="file" size="50"> </td> </tr> </table> <table align="center"> <tr> <td align="center"> <input type="submit" name="submit" value="Загрузить" /> </td> </tr> <tr> <td align="center"> <small>Файлы на сервере хранятся <b>не более 7 дней</b>. Ограничение на размер файла <b>100Mb</b></small> </td> </tr> </table> </form> <?} else { // set_time_limit(50000);//for uploading big files $paths='/home/user/public_html'; $filep=$_FILES['userfile']['tmp_name']; $ftp_server='мой_сервер'; $ftp_user_name='логин'; $ftp_user_pass='пароль'; $name=$_FILES['userfile']['name']; // set up a connection to ftp server $conn_id = ftp_connect($ftp_server); // login with username and password $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass); // check connection and login result if ((!$conn_id) || (!$login_result)) { echo "FTP connection has encountered an error!"; echo "Attempted to connect to $ftp_server for user $ftp_user_name...."; exit; } else { // echo "Connected to $ftp_server, for user $ftp_user_name"."....."; echo "<div id=center>"; echo "Соединение с сервером $ftp_server прошло удачно...<br>"; } // upload the file to the path specified $upload = ftp_put($conn_id, $paths.'/'.iconv("UTF-8","CP1251",$name), $filep, FTP_BINARY); // check the upload status if (!$upload) { echo "FTP upload has encountered an error!"; } else { // echo "Uploaded file with name $name to $ftp_server "; echo "<b>Ваша ссылка:</b> $ftp_server/$paths/$name"; echo "</div>"; } // close the FTP connection ftp_close($conn_id); } ?> </div> </html>
Да всё уже, разобрался, действительно надо просто было правильно прописать А как сделать так, чтобы имя загружаемого файла записывалось в БД? Вот мой скрипт загрузки (там ближе к концу мой код записи мени файла в БД) PHP: <html xmlns="http://www.w3.org/1999/xhtml"; dir="ltr" lang="ru-RU"> <head profile="http://gmpg.org/xfn/11">; <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" /> <title>Загрузка на FTP</title> <style type="text/css"> #center { width: 100%; padding: 10px; /* Поля вокруг текста */ margin: 0 auto; /* Выравниваем по центру */ background: #fc0; /* Цвет фона */ margin-top: 10%; text-align: center; } </style> </head> <? if(!isset($_POST["submit"])){?> <div id=center> <form action="upl.php" method="POST" enctype="multipart/form-data"> <table align="center"> <tr> <td align="right"> <b>Выберите файл:</b> </td> <td> <input name="userfile" type="file" size="50"> </td> </tr> </table> <table align="center"> <tr> <td align="center"> <input type="submit" name="submit" value="Загрузить" /> </td> </tr> <tr> <td align="center"> <small>Файлы на сервере хранятся <b>не более 7 дней</b>. Ограничение на размер файла <b>100Mb</b></small> </td> </tr> </table> </form> <?} else { // set_time_limit(50000);//for uploading big files $paths='images'; $filep=$_FILES['userfile']['tmp_name']; $ftp_server='---'; $ftp_user_name='---'; $ftp_user_pass='---'; $name=$_FILES['userfile']['name']; // set up a connection to ftp server $conn_id = ftp_connect($ftp_server); // login with username and password $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass); // check connection and login result if ((!$conn_id) || (!$login_result)) { echo "FTP connection has encountered an error!"; echo "Attempted to connect to $ftp_server for user $ftp_user_name...."; exit; } else { // echo "Connected to $ftp_server, for user $ftp_user_name"."....."; echo "<div id=center>"; echo "Соединение с сервером $ftp_server прошло удачно...<br>"; } // upload the file to the path specified $upload = ftp_put($conn_id, $paths.'/'.iconv("UTF-8","CP1251",$name), $filep, FTP_BINARY); // check the upload status if (!$upload) { echo "FTP upload has encountered an error!"; } else { // echo "Uploaded file with name $name to $ftp_server "; echo "<b>Ваша ссылка:</b> $ftp_server/$paths/$name"; echo "</div>"; // Запись названия загружаемого файла в БД. Я правильно код этот написал?: $server="localhost"; $user="---"; $pass="---"; $DB="---"; $image_name=$name; mysql_connect($server,$user,$pass) or die("Нет коннекта!" ; mysql_select_db($DB); mysql_query("Insert INTO mages(image_name) VALUES('".addslashes($image_name)."' " ; mysql_close(); echo "Всё прошло удачно!"; } // close the FTP connection ftp_close($conn_id); } ?> </div> </html>