Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> PECL uploadprogress, Как понять когда загрузка завершилась? 
:(
    Опции темы
Ripper
Дата 25.5.2013, 17:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Lonely soul...
**


Профиль
Группа: Участник
Сообщений: 920
Регистрация: 30.6.2004
Где: г. Москва

Репутация: 1
Всего: 23



Добрый день

Пытаюсь сделать индикатор загрузки с помощью pecl uploadprogress. Но не понимаю как отследить статус загрузки. Функция uploadprogress_get_info возвращает либо инфу о загружаемом файле, либо false, причем если false это может означать что загрузка еще не началась, либо закончилась, либо ошибка.

Я на jQuery отправляю аяксом post запрос, после чего начинается загрузка. Далее ставлю таймер который каждые сколько то миллисекунд отправляет запрос на сервер с целью получить сколько мы уже загрузили. Но эти две вещи - асинхронные, т.е. бывает так что загрузка файла еще не началась, а я уже чекаю на то, сколько загрузилось, и получаю false. А бывает так что загрузка завершилась, а запрос на проверку размера пришел после загрузки, и тоже false.

Ну собственно вот код (codeigniter):
Код

    public function progress() {
        if ($this->input->get('uid')) {
            $status = uploadprogress_get_info($this->input->get('uid'));
            if ($status) {
                $uploaded = round($status['bytes_uploaded']/$status['bytes_total']*100);
                $this->response->custom(array('in_progress' => true, 'progress' => $uploaded));
            } else {
                $this->response->custom(array('in_progress' => false));
            }
        } else {
            $this->response->error(BAD_INPUT_DATA);
        }
    }


Я находил пример где как-то с iframe-ом это делают, только еще дело в том, что, после загрузки файла у меня еще кое-какая логика выполняется, которая тоже занимает время. И мне нужно различать, когда непосредственно загрузился файл, а когда после этого закончилась логика. Ну например... загрузился файл и добавили запись в БД. Я хочу отобразить прогресс бар с загрузкой файла, а после того как файл загрузился, вывести надпись "Добавление в базу данных...", а после уже добавления написать что типа все ОК.  А в примере было onload iframe = uploading finished, но это не совсем так



--------------------
"Он знает: надо смеяться над тем, что тебя мучит, иначе не сохранишь равновесия, иначе мир сведет тебя с ума" - Над кукушкиным гнездом
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0406 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.