Создание индикатора выполнения файла в PHP

Простой способ подделать User Agent будет использовать FirefoxProfile() следующим образом:

from selenium import webdriver
from fake_useragent import UserAgent

useragent = UserAgent()
profile = webdriver.FirefoxProfile()
profile.set_preference("general.useragent.override", useragent.random)
driver = webdriver.Firefox(firefox_profile=profile, executable_path="C:\\Utility\\BrowserDrivers\\geckodriver.exe")
driver.get("http://www.whatsmyua.info/")

Результат трех последовательных выполнений следующий:

[119 ]
  • Первое выполнение:

    Mozilla/5.0 (Windows NT 4.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2049.0 Safari/537.36
    
  • Второе выполнение:

    Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.517 Safari/537.36
    
  • Третье выполнение:

    [ 113]
    5
    задан gkrogers 19 December 2010 в 11:32
    поделиться

    8 ответов

    Можно попробовать YUI или Прототип или JQuery

    3
    ответ дан 18 December 2019 в 12:03
    поделиться

    Вы в значительной степени вычислены, как сделать это. Основная проблема - Вы, обычно не имеют доступа к размеру загруженного файла, пока это не сделало загрузку.

    Существуют обходные решения для этого: Позволяя APC, Вы получить доступ к этой информации, если Вы включаете поле под названием "APC_UPLOAD_PROGRESS" и используете apc_fetch () для получения записи кэша с состоянием.

    Существует также плагин, названный uploadprogress, но он очень хорошо не документируется и не работает над Windows (в последний раз, я проверил так или иначе).

    Альтернатива должна использовать Flash для того, чтобы сделать его. См. сценарии как FancyUpload.

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

    Надеюсь, это поможет.

    6
    ответ дан 18 December 2019 в 12:03
    поделиться

    В чистом PHP Вы корректны: это не возможно.

    Если Вы AJAX-ify это, то Вы могли сделать то, что Вы описываете. Единственные метры прогресса, которые я когда-либо видел, находятся в JavaScript или Flash, хотя я предполагаю, что Silverlight могла сделать это также.

    0
    ответ дан 18 December 2019 в 12:03
    поделиться

    До сих пор наиболее распространенным способом выполнения этого является SWFUpload: http://www.swfupload.org/

    Однако это возможно с чистым PHP, просто очень трудно и очень экспериментально. Я буду видеть, могу ли я найти ссылку.

    Править: Согласно комментариям к php.net, с 5,2 существует рычаг для обработки прогресса загрузки. http://us.php.net/features.file-upload#71564

    Больше объяснения:

    Пример Rasmus:

    5
    ответ дан 18 December 2019 в 12:03
    поделиться

    Я рекомендовал бы смотреть на SWFUpload для выполнения то, что Вы хотите. Это довольно гибко и поддерживает организацию очередей файлов, таким образом, Вы могли даже обработать многофайловые загрузки.

    0
    ответ дан 18 December 2019 в 12:03
    поделиться

    По-моему, лучшее / самое легкое решение состоит в том, чтобы создать маленький виджет флэш-памяти, который состоит из кнопки 'Upload' и индикатора выполнения. Flash дает Вам очень подробную обратную связь на том, сколько данных было загружено до сих пор, и можно создать хороший индикатор выполнения на основе этого. Не требует неэффективного опроса сервера и на самом деле не требует никаких изменений вообще в Вашем серверном коде. Google для 'загрузчика флэш-памяти' и Вы найдете, что многие люди уже записали эти виджеты и рады продать их Вам для маркера.

    0
    ответ дан 18 December 2019 в 12:03
    поделиться

    Вы определенно захотите пойти с FancyUpload digitgerald. Это - Mootools и swfuplaod, базирующийся, и это щеголяет хорошей очередью состояниями, прогрессом, ЭТА и т.д. Это - действительно slickest метод, я видел загрузку файлов. Для моего персонального варианта использования ivé использовал его, чтобы позволить клиенту выбрать 1,2 ГБ файлов PDF и загрузить их. Более новые переименованы и присвоили версию автоматически, то же пропускается и т.д.

    0
    ответ дан 18 December 2019 в 12:03
    поделиться

    "Старая школа", но PHP + метод Perl: http://www.raditha.com/php/progress.php

    0
    ответ дан 18 December 2019 в 12:03
    поделиться
    Другие вопросы по тегам:

    Похожие вопросы: