Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Определения время аплоада


Автор: EugenyPavlenko 19.11.2008, 21:17
Здравствуйте,

Сначала думал, что определение времени отгрузки файла (upload) средствами ЯваСкрипта + ПХП сделать невозможно.
Ошибался. Возможно. Аякс не используется. Используется ифрейм.

Вот код яваскрипта:
Код

 var UP = function() {
  var startTime = null;
  var infoUpdated = 0;

  var writeStatus = function(text) {
   var statDiv = document.getElementById("status");
   statDiv.innerHTML = text;
  }

  return {
   start: function(elem, id) {
    $('#status_cont').show("slow");
    $('#upload').hide("slow");

    startTime = new Date();
    infoUpdated = 0;
    this.requestInfo();

    uploadid = id;

    elem.target = 'ifr2'; //вот он - фрейм!
    elem.action = 'http://сайт.ru:8080/upload/?type=js';
    elem.submit();
   },
   requestInfo: function() {
    $.get("http://сайт.ru/info.php?id="+uploadid+"&"+new Date(), function(data){
     eval(data);
    });
   },
   updateInfo: function(percent, estimatedSeconds) {
    if (startTime) {
     if (percent) {
      infoUpdated++;
      e = gid('Percent');
      e.style.width = (480 * Math.floor(percent * 100) / 100)+'px';
      writeStatus(Math.floor(percent * 100) + "% готово, " + estimatedSeconds + "  секунд осталось");
     } else {
      if (infoUpdated > 0) {
       e = gid('Percent');
       e.style.width = (480)+'px';
       writeStatus("Идет обработка изображений на сервере...");
      }
      else
       writeStatus("Строка загрузки недоступна");
     }
     window.setTimeout("UP.requestInfo()", 100);
    }
   }
  }
 }()


Строка которая отвечает за определения оставшегося времени:
Код

    $.get("http://сайт.ru/info.php?id="+uploadid+"&"+new Date(), function(data){




Вопрос: что это такой за магический скрипт "info.php" и каким образом он определяет оставшееся время?




Автор: MoLeX 20.11.2008, 06:33

 ! 
MoLeX



Модератор: 

тема не относится к разделу РНР: Профи.




Автор: ZlojEzh 21.11.2008, 00:52
вот здесь описано, как использовать pecl-расширение для получения информации о состояние аплоада:
http://php.net/manual/en/features.file-upload.php#71564

Автор: EugenyPavlenko 21.11.2008, 10:27
ZlojEzh, спасибо, то что надо!

Автор: indexphp 22.11.2008, 05:58
swfuploader хорошая штука

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)