![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
|
Отправляю картинку на сервер через URLLoader (если точнее - с использованием класса MultipartURLLoader), и, как тут уже обсуждалось ранее, событие ProgressEvent.PROGRESS там не отрабатывает. По крайней мере, так, чтобы можно было показать адекватно изменяющийся прогресс-бар.
У кого есть готовое решение? |
|
|||||
|
Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
|
Не, с крутилкой не вариант. Это я и сам могу.
Насчет того, что сервер должен что-то отвечать, я где-то видел, но так и не понял точно, что именно. У меня была шальная мысль сделать аплоад средствами js и получать прогресс оттуда... |
|
|||||
|
Регистрация: Sep 2013
Сообщений: 16
|
А GreenSock LoaderMaх не пробовали http://www.greensock.com/loadermax/?
|
|
|||||
|
Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
|
С загрузкой файлов в клиент с сервера проблем никаких нет. Тут прекрасно справляются и штатные средства. Речь идет об отправке файлов, которые создает клиент (например, изображение после обработки), на сервер.
Добавлено через 24 минуты Собственно, могу перефразировать вопрос. Я так понимаю, события ProgressEvent при отправке файла данных на сервер POST'ом через URLLoader не возникает по совершенно закономерной причине. Вот если в ответ на запрос с файлом сервер начнет грузить данные со своей стороны - то вот там и возникнет событие ProgressEvent. Так что вопрос скорее получается про трюк для обмана пользователя. На первый взгляд может отработать примерно такая штука: 1. Если пользователь еще не отправлял ни одного файла на сервер, то мы считаем, что его скорость доступа к серверу ХХХ кбит/с (придется подобрать некоторую среднюю скорость опытным путем). В соответствии с этой "скоростью" и показываем движение прогресс-бара. Где-то на последней четверти замедляемся, чтобы не получилось, что прогресс-бар уперся в ограничитель, а загрузка не закончилась. Пусть лучше пользователь думает, что закачка замедлилась. 2. Если пользователь уже отправил хотя бы один файл на сервер, то мы можем скорректировать его скорость соединения, но в остальном - логика та же, что и в п.1. |
|
|||||
|
А сервак ваш на чем?
http://www.php.net/manual/ru/session...d-progress.php Добавлено через 5 минут Кстати, когда я не знал про всякие мултипартлоадеры и спец механизмы приема файлов в пхп, у меня был написан свой велосипед, который точно отображал прогресс аплоада. Правда он не секьюрный был. Буду дома, поищу.
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку. |
|
|||||
|
Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
|
Не, сервер делал не я и он точно не на пхп.
Впрочем, я кину им ссылку, может они чего нароют. Цитата:
|
|
|||||
|
Хм нашел проект, там вообще все через файлреференс, а мне казалось что я байтаррай кидал. Но тем не менее прогресс там точно был.
Добавлено через 46 минут А нет, я наврал, что наврал, короче, я слал картинку байтарраем и писал ее в файл пхпой. Сейчас смотрю, вроде не такой уж и плохой способ, а то мультипарты всякие :о)
private function saveImage(png:ByteArray):void { var request:URLRequest = new URLRequest(Pathes.scriptPath + 'saveImage.php?uid=1'); request.contentType = 'application/octet-stream'; request.method = URLRequestMethod.POST; request.data = png; var loader:URLLoader = new URLLoader(); loader.load(request); }
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку. Последний раз редактировалось GBee; 06.02.2014 в 15:39. |
|
|||||
|
Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
|
Так вроде это та же самая отправка постом. И в этом случае прогрессэвент возникает?
|
![]() |
![]() |
Часовой пояс GMT +4, время: 10:41. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|