Кросс-браузерный прогрессбар jQuery + PHP

Опубликовано admin - вт, 04/17/2018 - 19:51

До сих пор, из-за отсутствия поддержки браузерами Internet Explorer индикации окончания загрузки файлов, приходится искать всевозможные решения для отображения процесса загрузки в процентах. Для обычных хостингов добиться правильного кроссбраузерного решения ещё сложнее, так как кроссбраузерный способ, изложенный в этой статье будет рассчитан для выделенных серверов или VPS, однако есть и объяснение не кроссбраузерного, но так же рабочего варианта.

Один из вариантов - использовать для браузеров на WebKit и Mozilla встроенных возможностей, соответствующих стандартам W3C и установка flash загрузки для Internet Explorer. Однако, указанное решение мне не подходит, так как flash всегда казалась излишней на web страницах и затрудняющей доступ к приложению из-за необходимости установки соответствующего flash плагина. Поэтому я выбрал APC и jQuery с PHP.

APC, jQuery и PHP

Плюсы APC, jQuery и PHP:

  • кроссбраузерный прогрессбар

Минусы APC, jQuery и PHP:

  • дополнительная настройка сервера;
  • точность загрузки не совсем верная, по сравнению с встроенными решениями для браузеров;

Для начала установите APC и настройте его, как показано на изображении:

ajax and php and uploader

откройте терминал и введите следующие команды:

Если при установке возникнут следующие ошибки:

необходимо выполнить:

если не помогло, то:

APC необходимо включать как модуль в конфигурационном файле apache и php.ini:

Ещё необходимо установить параметр частоты обновления кэша загрузки файла apc.rfc1867_freq в php.ini, например так:

После этого перезагрузите сервер:

Если у вас PHP 5.4, - APC не нужен! Подробно об этом написано в последнем разделе статьи.

jQuery и PHP

После того как настроили APC, напишем скрипты загрызающие файлы на сервер:

  • index.php - файл с кнопкой загрузки;
  • upload_process.php - файл обрабатывающий запросы и возвращающий количество загруженного файла;

 

index.php

Теги

Оценка

2 votes with an average rating of 4.

На разработку сайта! Скидки до 20%!