Полоса загрузки файла

Тема в разделе "PHP", создана пользователем phillip, 7 сен 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. phillip

    phillip

    Регистр.:
    4 сен 2007
    Сообщения:
    413
    Симпатии:
    15
    Помогите, пожалуйста. У меня есть такой кусок кода. Суть которого в том чтобы видеофайл скачать себе на сервак через курл, и назвать рендомным именем с расширением .flv
    Задача- сделать отображение процесса скачивания. То есть полоску загрузки. Статусбар, или как это называется. хз
    Код:
    $curl = curl_init($finish_url_for_download);   
    curl_setopt($curl, CURLOPT_USERAGENT, 'Boroda/2.0 J2ME/MIDP');  
    $newfilename= mt_rand(10000, 1000000).'.flv';  
    $new_file_location='bases/videoz/'.$newfilename;  
    $fp =fopen($new_file_location,'w+b');   
    curl_setopt($curl, CURLOPT_FILE, $fp);
    curl_exec($curl);   
    curl_close($curl);   
    fclose($fp);  


    ---------- Post added at 16:13 ---------- Previous post was at 14:53 ----------

    Подсказали мне, что надо иметь расширение для апача, чтобы во время загрузки файла можно было сделать прогресс бар. А курл якобы может только по завершению работы выдать информацию. Может быть кто-то знает подобное расширение?
     
  2. tostrss

    tostrss

    Регистр.:
    16 окт 2007
    Сообщения:
    771
    Симпатии:
    217
    посмотри скрипт http://rapidgetpro.ru/
     
  3. painsource

    painsource Постоялец

    Регистр.:
    13 июл 2009
    Сообщения:
    64
    Симпатии:
    8
    можно попробовать следующее:
    размер исходного файла тебе известен, и в процессе загрузки файла узнавай каждую секунду к файлу и проверяй его размер(можно и ajax попробовать), и пощитай и выводи процент закачки...
    Хотя, это дополнительная нагрузка на сервер и канал, и я рекомендую ничего не делать пока файл качается, только когда закался вывести отчет
     
    phillip нравится это.
  4. tostrss

    tostrss

    Регистр.:
    16 окт 2007
    Сообщения:
    771
    Симпатии:
    217
    Можно просто js выводить новые значения прямо в браузер.
    например есть js функция
    function setValue(var1, var2) {..};
    которая устанавливает размер закаченного и скорость закачки.

    В скрипте отключаем буфферизацию.
    данные вычисляем все значения и на каждой итерации делаем
    print('<script>setValue('123', '25');</script>');

    и все, вот вам статус-бар, не нагружающий серв и жрущий минимальное кол-во траффика.

    по такому принципу работают супекс дампер и рапидгет.
     
    phillip нравится это.
  5. m0nsieur

    m0nsieur Создатель

    Регистр.:
    30 июн 2008
    Сообщения:
    11
    Симпатии:
    4
    Расширение uploadprogress, скачать можно тут http://pecl.php.net/package/uploadprogress
    Логика там простая, делать запрос через ajax и отдавать в нем идентификатор файла, а на стороне php вызывать функцию из uploadprogress, которая будет возвращать информацию о объеме загруженного файла и через ajax возвращать это значение.

    Так же почитай _http://habrahabr.ru/blogs/webdev/17620/
    способ с помощью другого расширения для php.
     
    phillip нравится это.
  6. shmitacc

    shmitacc Постоялец

    Регистр.:
    31 авг 2009
    Сообщения:
    76
    Симпатии:
    6
    а можно использовать AJAX скрипт для закачки файлов на сервер.

    [​IMG]

    Этот скрипт предназначен для создания возможности закачки одного или нескольких фалов на сервер. Причем вся операция происходит в формате AJAX, а значит без перезагрузки страницы. Во время самой загрузки файлов вы можете наблюдать за текущим состоянием процесса по шкале с двумя "градусниками". Верхний "градусник" указывает на состояние загрузки какого либо конкретного файла, а нижний информирует о состоянии загрузки, в общем. Скрипт будет нормально работать с такими браузерами как Internet Explorer 6+, Opera 9, Firefox 1.5 и Safari 2 и выше.

    http://allajax.ru/script/ajax-skript-dlya-zakachki-ocheredi-falov-na-server/
     
    fredis69 нравится это.
  7. antn

    antn Постоялец

    Регистр.:
    11 июл 2009
    Сообщения:
    104
    Симпатии:
    30
    2 m0nsieur, shmitacc: автору вроде нужен download, а не upload.
     
  8. shmitacc

    shmitacc Постоялец

    Регистр.:
    31 авг 2009
    Сообщения:
    76
    Симпатии:
    6
    Этот скрипт предназначен для создания возможности закачки одного или нескольких фалов на сервер - это upload

    автор пишет :

    "Суть которого в том чтобы видеофайл скачать себе на сервак" - это Upload
     
  9. antn

    antn Постоялец

    Регистр.:
    11 июл 2009
    Сообщения:
    104
    Симпатии:
    30
    Upload - процесс передачи данных от клиента (программы) к серверу (программе), а в данном случае сервер (компьютер) выступает в роли клиента.

    Проще: ему (серверу) нужно скачать файл, а не выгрузить
     
  10. Yaggi Jah

    Yaggi Jah Постоялец

    Регистр.:
    15 ноя 2006
    Сообщения:
    75
    Симпатии:
    31
    Простыми средствами php такое не решить.
    Нужен сторонний модуль ну хотяб на perl'e (видел где-то такие решения).
     
Статус темы:
Закрыта.