Как отобразить текущий прогресс загрузки (jquery + post + php)? - PullRequest
2 голосов
/ 15 января 2012

У меня проблема. Я пытаюсь загрузить изображение с помощью метода jquery & post + PHP на мой сервер. Часть кода ниже:

$.post("http://www.xyz.com/upload.php", { image: ImageObject}, function(data) {
  //code                       
});

Я хотел бы отобразить текущий прогресс (автоматическое обновление) загрузки по тексту, что-то вроде этого:

<div>Current progress: <div id="progress">[dynamic number]</div>

Есть идеи, как мне это сделать? Я не хочу использовать flash - только php / jquery.

1 Ответ

1 голос
/ 15 января 2012

К сожалению, вы не можете сделать это изначально только через jQuery, так как на стороне клиента javascript не имеет доступа к информации о клиенте за пределами веб-страницы, но у вас do есть несколько вариантов:

  1. Используйте плагин Flash или Java, который имеет доступ к клиенту, например этот .
  2. Используйте систему опроса вашего сервера для запроса прогресса текущего файла. Я не очень знаком с PHP, но в .NET класс, отвечающий за получение выгруженных файлов, скажет мне, сколько байт было загружено до сих пор. Я бы установил таймер на стороне клиента для запроса этой информации через ajax с заданным интервалом (например, 1 секунда), а затем использовал возвращенную информацию для манипулирования индикатором выполнения.
  3. Используйте веб-сокеты HTML5 для push загрузки процесса с сервера на клиент. Хотя это довольно аккуратный вариант, это мой минимум любимый, потому что его сложнее реализовать и не пользуется широким поддержка браузера только сейчас.

Удачи!

...