За последние 24 часа нас посетили 59355 программистов и 1834 робота. Сейчас ищут 1064 программиста ...

Не получается загрузить файл на http-сервер.

Тема в разделе "Прочие вопросы по PHP", создана пользователем zuzuxel, 24 июн 2007.

  1. zuzuxel

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

    С нами с:
    24 июн 2007
    Сообщения:
    2
    Симпатии:
    0
    Здравствуйте!
    Помогите пожалуйста хорошим советом!

    Я совсем недавно начал осваивать PHP.
    Хочу научиться использовать PHP для организации загрузки файлов на http-сервер.

    Если кратко, то у меня возникла такая проблема:
    Я не могу загрузить на сервер файл размером больше 800МБайт.

    Если подробно, то проблему можно изложить так:
    Файл размером меньше 800МБайт (приблизительно) загружается нормально, то есть сначала копируется по сети во временную папку (upload_tmp_dir) (можно наблюдать как во временной папке размер файла постепенно растёт), а потом перемещается (move_uploaded_file) в конечную папку, которую я указываю в php-скрипте.
    А вот файл размером больше 800МБайт не копируется во временную папку (upload_tmp_dir), а целиком копируется в оперативную память сервера (как я понял из наблюдений), и через некоторое время функция "move_uploaded_file" возвращает не "true". То есть такой файл почему-то не попадает на жёсткий диск вообще, не во временную папку, не в конечную папку.
    Причём одновременно загружать на сервер два файла размером 700МБайт можно без проблем, оба файла нормально загрузятся: сначала во временную папку, потом в конечную папку.

    Примечание.
    Использую "IIS6.0" и файл "php5isapi.dll" (из "PHP 5.2.3 zip package").
    Операционная система "Windows 2003 Server SP1 Rus", файловая система "NTFS".
    Для загрузки файлов использую метод "POST".
    Значения некоторых директив в файле "php.ini" я указал такие:
    max_execution_time = 3600
    max_input_time = 3600
    memory_limit = 5M
    file_uploads = On
    upload_tmp_dir = "c:/php-folder-time"
    session.save_path="c:/php-folder-time"
    upload_max_filesize = 80000M
    post_max_size = 80000M
    default_socket_timeout = 15
     
  2. abc

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

    С нами с:
    5 май 2007
    Сообщения:
    80
    Симпатии:
    0
    memory_limit можешь поставить побольше, и не забудь ПЕРЕЗАПУСТИТЬ АПАЧ, из-за этого иногда куча проблем :)
    + в помощь поиск, т.к. насколько я помню эта тема уже обсуждалась не однажды.. :)
     
  3. zuzuxel

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

    С нами с:
    24 июн 2007
    Сообщения:
    2
    Симпатии:
    0
    Пробовал загружать файлы на http-сервер Apache2.2.4 (плюс модуль php5apache2_2.dll).

    Тот же результат! Файлы размером более 800МБайт отправляются с клиента нормально, сервер их принимает нормально (сетевой адаптер загружен), а папка (upload_tmp_dir) для временных файлов пустая почему-то. Куда деваются файлы? Испаряются? Совершенно не понимаю ситуацию. Получается, что это именно PHP неправильно что-то выполняет?

    Искал в интернете предел для объёма данных, переправляемых методом POST. Везде пишут, что неограничен объём. Файловая система сервера позволяет большие файлы записывать. В чём же дело?

    Люди, неужели никто не пробовал большие файлы на http-сервер загружать!?
    У вас всё нормально работает?