Проблемы со скоростью загрузки файлов Flash / PHP

Я пытаюсь написать простое внутреннее приложение для доставки файлов для загрузки файлов для удобной загрузки на стороне нашего клиента. Я использую Flash с очень простым сценарием PHP, получающим файл. Пока это работает.

Формулировка проблемы такова: при использовании FTP файл размером 100 МБ будет загружен за 2–3 минуты. Используя мой простой загрузчик Flash и загрузив его в то же место назначения, это занимает в 3-5 раз больше времени. Есть ли способ изменить настройки PHP / Apache, чтобы сократить время загрузки?

FLA: http://shorttext.com/ku018nj56s

PHP: http://shorttext.com/5thixgjtr


person Jeremy White    schedule 12.10.2009    source источник
comment
100 МБ за 2-3 минуты? У тебя быстрая связь :)   -  person Amarghosh    schedule 13.10.2009
comment
не уверен, что это имеет значение, но вам может не хватать пары параметров в сценарии действий ... request.contentType = multipart / form-data; request.method = URLRequestMethod.POST;   -  person Howard Zoopaloopa    schedule 13.10.2009
comment
@Amaerghosh heelllll да, я делаю! Comcast Business Class ... дерьмовое обслуживание клиентов, отличная скорость подъема / опускания.   -  person Jeremy White    schedule 13.10.2009
comment
@Jascha Я получаю те же результаты с этими параметрами или без них.   -  person Jeremy White    schedule 13.10.2009
comment
Какая скорость загрузки при использовании html-формы? Я лично считаю, что FTP - самый быстрый для загрузки. Может дело в протоколе другой.   -  person Andy Li    schedule 14.10.2009
comment
Я считаю, что загружая его через flash / http, вы получаете увеличение размера на 33%, потому что он закодирован в base 64, что не учитывает в 3-5 раз больше.   -  person Kristoffer Sall-Storgaard    schedule 17.10.2009
comment
@Kristoffer: зависит от того, как флэш-память обрабатывает это, но в Base64 нет необходимости, поэтому я не думаю, что он действительно кодируется, я больше думаю, что флэш-память ограничивает ресурс, который он использует. скажем, если вы создадите плохую флеш-память, вы можете убить производительность пользовательской машины.   -  person RageZ    schedule 19.11.2009


Ответы (3)


Я не могу себе представить столько накладных расходов с компонентом загрузки Flash. Можете ли вы, как уже рекомендовал Xeoncross, использовать другой, чтобы убедиться, что он не является программным? Стандартный пример SWFUpload должен быть довольно простым в настройке.

Затем, происходит ли на сервере какая-либо пост-обработка, которая может продлить запрос? Что произойдет, если вы позволите принимающему скрипту сразу умереть (), разница во времени все еще такая большая?

Как (с каким именем хоста / IP) вы обращаетесь к FTP-серверу и как браузер обращается к сценарию, который анализирует загрузку?

Я не думаю, что есть что-то, что вы можете сделать на стороне PHP, потому что сценарий PHP вступает в игру только тогда, когда файл полностью загружен. Единственное, что может быть неправильная конфигурация веб-сервера - Apache или что-то еще, что вы используете, - но это очень отдаленная возможность.

person Pekka    schedule 22.11.2009
comment
К сожалению, я не подумал, когда назначил награду. В настоящее время я нахожусь в отпуске и не смог ничего протестировать, но я думаю, что этот ответ принес мне наибольшее понимание. Я собираюсь исследовать все эти варианты и опубликую, когда / если найду решение. - person Jeremy White; 25.11.2009

Я бы порекомендовал вам попробовать предварительно встроенный флеш-загрузчик, например красивый FancyUpload на базе mootools Javascript. рамки. Во-первых, он существует и имеет открытый исходный код гораздо дольше, поэтому он будет оптимизирован. Во-вторых, если он по-прежнему медленнее, чем FTP (что будет), тогда вы будете знать, что на самом деле накладные расходы FLASH + Apache + PHP просто не могут превзойти скорость прямого FTP-соединения.

Также существует множество других загрузчиков - от автономных до jQuery!

person Xeoncross    schedule 19.11.2009

вы можете использовать XMLHTTPRequest и загружать через HTTP?

person GeeKieR    schedule 23.11.2009