не заливается файл на ftp через php

Тема в разделе "PHP", создана пользователем painsource, 3 сен 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. painsource

    painsource Постоялец

    Регистр.:
    13 июл 2009
    Сообщения:
    64
    Симпатии:
    8
    Вот на одном хостинге пытаюсь положить файлы на фтп:
    PHP:
    $conn_id ftp_connect($ftp_server21);
        
        
    $login_result ftp_login($conn_id$ftp_user_name$ftp_user_pass);
        
    ftp_pasv($conn_idtrue);
        
        if (
    ftp_put($conn_id"test.mpg""/tmp/test.mpg"FTP_BINARY)) echo "Загружен файл!\n";
        else echo 
    "Проблема закачивания!\n";
        
        
    ftp_close($conn_id);
    на что вываливаются варнинги:

    Warning: ftp_fput() [function.ftp-fput]: php_connect_nonb() failed: Operation now in progress (115) in /home/vol10/byethost7.com/b7_4016994/htdocs/curltest.php on line 69

    Warning: ftp_fput() [function.ftp-fput]: Entering Passive Mode (85,17,146,202,235,167) in /home/vol10/byethost7.com/b7_4016994/htdocs/curltest.php on line 69

    Погуглил эти варнинги, но конкретного ответа не нашел... Возникает два вопроса:
    1. Возможно это файервол на хостинге не пропускает, но как узнать точно?
    2. Возможоли загрузить на сервер файлы другим способом?
     
  2. Jools

    Jools Создатель

    Регистр.:
    28 июн 2009
    Сообщения:
    14
    Симпатии:
    3
  3. painsource

    painsource Постоялец

    Регистр.:
    13 июл 2009
    Сообщения:
    64
    Симпатии:
    8
    да я находил это, и поэтому предположил на моем хостинге закрывают исходящие соединения...
    Тогда задам вопрос по другому:
    можно ли как то обойти файервол?
     
  4. ZloiJoker

    ZloiJoker Создатель

    Регистр.:
    2 июн 2007
    Сообщения:
    33
    Симпатии:
    0
    //turn off passive mode transfers
    ftp_pasv ($conn_id, false);
     
  5. painsource

    painsource Постоялец

    Регистр.:
    13 июл 2009
    Сообщения:
    64
    Симпатии:
    8
    та я так уже пробовал:
    Warning: ftp_put() [function.ftp-put]: Could not open data connection to port 21225: Operation timed out in /home/vol10/byethost7.com/b7_4016994/htdocs/curltest.php on line 62
     
  6. t0wer

    t0wer BlackHerald

    Регистр.:
    24 июн 2008
    Сообщения:
    731
    Симпатии:
    421
    1. Если фаром или другим клиентом заходите на фтп сервер, значит пропускает!
    2. Возможно, через аплоад форму (HTTP)

    У Вас пишет ошибку, что должен передавать данные в пассивном режиме ("Entering Passive Mode (85,17,146,202,235,167)")!

    Используйте функцию:
    PHP:
    ftp_pasv $fp TRUE);
    вот нормальный класс по работе с FTP с примером работы:
    class PHPFTP

    темы для изучения:
    вариант №1
    мануал по фтп

    Правила загрузки файлов на сервер:
    1) При загрузке по FTP загружайте текстовые, html, php файлы в режиме TEXT, остальные - в режиме BIN
    2) Не используйте кириллицу в именах файлов
    3) Используйте для написания имен файлов одинаковый регистр букв - буквы в разных регистрах отличаются, и следовательно "INDEX.HTML", "Index.html" и "index.html" - это 3 разных файла
    4) При обращении к корневой странице http://ваш-сайт/ сайта загружается индексный файл. По умолчанию индексными файлами выступают файлы: index.html, index.htm, index.php, index.shtml.
     
    painsource нравится это.
  7. adrock

    adrock Создатель

    Регистр.:
    3 фев 2009
    Сообщения:
    20
    Симпатии:
    0
    Можно curl попробовать
     
  8. 1467

    1467 Постоялец

    Регистр.:
    29 сен 2009
    Сообщения:
    70
    Симпатии:
    49
    Подскажите скрипт, что бы с сервера на фтп заливать.
     
  9. irk

    irk Постоялец

    Регистр.:
    18 май 2009
    Сообщения:
    86
    Симпатии:
    1
    Попробуй как то так

    PHP:

    <?
    $path=GetCWD()."/files";
    if(!file_exists($path))
    die("<b>Пожалуйста, создайте папку <font color=red>".$path."</font> и <a href=?>повторите попытку загрузить файл</a>.</b>");
    if(empty($_FILES['UserFile']['tmp_name']))
    echo"<form method=post enctype=multipart/form-data>
    Выберите файл: <input type=file name=UserFile>
    <input type=submit value=Отправить>
    </form>";
    elseif(!is_uploaded_file($_FILES['UserFile']['tmp_name']))
    die("<b><font color=red>Файл не был загружен! Попробуйте <a href=?>повторить попытку</a>!</font></b>");
    else{
    if(@!copy($_FILES['UserFile']['tmp_name'],$path.chr(47).$_FILES['UserFile']['name']))
    die("<b><font color=red>Файл не был загружен! Попробуйте <a href=?>повторить попытку</a>!</font></b>");
    else
    echo "<center><b>Файл \"<font color=red>".$_FILES['UserFile']['name']."\"</font> успешно загружён на сервер!</font></b></center>"."<hr>".
    "Тип файла: <b>".$_FILES['UserFile']['type']."</b><br>".
    "Размер файла: <b>".round($_FILES['UserFile']['size']/1024,2)." кб.</b>".
    "<hr><center><a href=?>Загрузить ещё один файл!</a></center>";
    }
    ?>
     
Статус темы:
Закрыта.