За последние 24 часа нас посетили 17439 программистов и 1720 роботов. Сейчас ищут 890 программистов ...

XHR: узнать размер загружаемого файла на клиенте

Тема в разделе "JavaScript и AJAX", создана пользователем lurii, 15 сен 2010.

  1. lurii

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

    С нами с:
    30 сен 2008
    Сообщения:
    40
    Симпатии:
    0
  2. Ensiferum

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

    С нами с:
    11 июл 2010
    Сообщения:
    1.292
    Симпатии:
    0
    Адрес:
    из секты поклонников Нео
    вроде никак. в PHP нет доступа к файлу до того, как он будет загружен
     
  3. Gromo

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

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    по второй ссылке является не кросс-браузерным решением.
    и размер узнается после начала загрузки изображения,
    т.е. в возвращаемом ответе содержится размер загружаемого файла.

    вроде так. на текущий момент единственное кроссбраузерное решение - это флеш.
     
  4. lurii

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

    С нами с:
    30 сен 2008
    Сообщения:
    40
    Симпатии:
    0
    остановимся на гугле (во втором примере код читабельнее)
    забудем про него

    Вот с этого места поподробнее надо: динамически создается iframe, form, input, форма отсылается, читается первый заголовок (ответ) сервера -> узнаем размер загружаемого файла -> stop
    Примерно так это выглядит? (почему не вижу процедуры считывания заголовков от сервера?)
     
  5. Gromo

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

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    Открываем первую ссылку гугл-докс, открываем файрбаг, смотрим объект аплоадинга:
    HTML:
    1. <object height="0" width="0" type="application/x-shockwave-flash" id="FLASH_UPLOADER_1" data="doclist/client/css/3372067853-uploaderapi.swf" style="width: 157px; height: 16px;" class=""><param name="allowscriptaccess" value="always"><param name="wmode" value="transparent"><param name="flashvars" value="apiId=FLASH_UPLOADER_1"></object>
     
  6. lurii

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

    С нами с:
    30 сен 2008
    Сообщения:
    40
    Симпатии:
    0
    Без флеша (удален) тоже работает, но вот данные о размере файла показывают только webkit-ы, недобраузеры просто загружают.
     
  7. Gromo

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

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    идеального решения мне до сих пор найти так и не удалось. есть близкое решение:
    http://demo.swfupload.org/Documentation/

    А про фишки, которые поддерживаются только некоторыми браузерами читать можно, но применять не стоит.
    И лопатить довольно большой код, который применять не буду, тоже нет желания :)

    Обещали в HTML 5 улучшить работу с локальными файлами, вот там и должна быть данная фишка.
    Насколько я знаю, частично хтмл 5 поддерживается у Мозиллы Файрфокс.
     
  8. lurii

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

    С нами с:
    30 сен 2008
    Сообщения:
    40
    Симпатии:
    0
    Спасибо, придется забить на эту фичу еще на несколько лет.
     
  9. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    я искал решение без флеша. нашел какую-то либу для пхп. ставить не стал. как работает - не знаю. гружу так. без прогрессбара =)
     
  10. ShamahN

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

    С нами с:
    10 апр 2007
    Сообщения:
    1.449
    Симпатии:
    0
    Адрес:
    г.Волгодонск Роствской обл.
    http://web-linux.ru/?p=417 тут есть что-то про процесс. Но помоему, топикстартера интересовала возможность проверки размера файла до его скачивания ;)