Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
evildevel

Не корректно работает jquery.uploadProgress

27.07.2011, 01:05. Показов 1211. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую уважаемые форумчане!

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

Система работает так:
Имеется страница с формой загрузки файла, к этой странице подключен jquery и jquery.uploadProgress.
На сервере установлен Apache и Nginx, с последним работает Upload Progress Module.

Вообщем, сложно объяснить в чем проблема, скажу в кратце, что не корректн работает jquery.uploadProgress.
Запрос на Nginx он отправляет, но вот ответ он не обрабатывает!! В этом и вся проблема!
В листинге jquery.uploadProgress я выделил участок кода который не выполняется по не известным мне причинам.
Если не сложно пройдите по ссылке ниже, чтобы посмотреть "в рабочем" варианте, что да как.
Заранее спасибо за помощь. Надежда тока на вас

Страница с формой и подключенными jquery и jquery.uploadProgress:
http://evildevel.com/upload.php

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 
    <head> 
        <title>ajaxFileUpload</title> 
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
        <script src="jquery.js"></script> 
        <script src="jquery.uploadProgress.js"></script> 
        <script type="text/javascript"> 
            $(function() {
                $('form').uploadProgress({
                    /* scripts locations for safari */
                    jqueryPath: "jquery.js",
                    uploadProgressPath: "jquery.uploadProgress.js",
 progressUrl: "/upload_progress",
                    start:function(){},
                    uploading: function(upload) {$('#percents').html(upload.percents+'%');},
                    interval: 2000
 
   
                });
            });
        </script> 
        <style type="text/css"> 
            .bar {
              width: 300px;
            }
            
            #progress {
              background: #eee;
              border: 1px solid #222;
              margin-top: 20px;
            }
            #progressbar {
              width: 0px;
              height: 24px;
              background: #333;
            }
        </style> 
    </head> 
    
    <body>  
      <form id="upload" enctype="multipart/form-data" action="/upload_file" method="post"> 
        <input name="file" type="file"/> 
        <input type="submit" value="Upload"/> 
      </form> 
        
        <div id="uploading"> 
          <div id="progress" class="bar"> 
            <div id="progressbar">&nbsp;</div> 
          </div> 
        </div> 
        <div id="percents"></div> 
    </body> 
</html>

Листинг [jquery.uploadProgress]
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
/*
* jquery.uploadProgress
*
* Copyright (c) 2008 Piotr Sarnacki (drogomir.com)
*
* Licensed under the MIT license:
* [url]http://www.opensource.org/licenses/mit-license.php[/url]
*
*/
(function($) {
  $.fn.uploadProgress = function(options) {
  options = $.extend({
    dataType: "json",
    interval: 2000,
    progressBar: "#progressbar",
    progressUrl: "/progress",
    start: function() {},
    uploading: function() {},
    complete: function() {},
    success: function() {},
    error: function() {},
    preloadImages: [],
    uploadProgressPath: '/javascripts/jquery.uploadProgress.js',
    jqueryPath: '/javascripts/jquery.js',
    timer: ""
  }, options);
 
  $(function() {
    //preload images
    for(var i = 0; i<options.preloadImages.length; i++)
    {
     options.preloadImages[i] = $("<img>").attr("src", options.preloadImages[i]);
    }
    /* tried to add iframe after submit (to not always load it) but it won't work.
    safari can't get scripts properly while submitting files */
    if($.browser.safari && top.document == document) {
      /* iframe to send ajax requests in safari
       thanks to Michele Finotto for idea */
      iframe = document.createElement('iframe');
      iframe.name = "progressFrame";
      $(iframe).css({width: '0', height: '0', position: 'absolute', top: '-3000px'});
      document.body.appendChild(iframe);
 
      var d = iframe.contentWindow.document;
      d.open();
      /* weird - safari won't load scripts without this lines... */
      d.write('<html><head></head><body></body></html>');
      d.close();
 
      var b = d.body;
      var s = d.createElement('script');
      s.src = options.jqueryPath;
      /* must be sure that jquery is loaded */
      s.onload = function() {
        var s1 = d.createElement('script');
        s1.src = options.uploadProgressPath;
        b.appendChild(s1);
      }
      b.appendChild(s);
    }
  });
 
  return this.each(function(){
    $(this).bind('submit', function() {
      var uuid = "";
      for (i = 0; i < 32; i++) { uuid += Math.floor(Math.random() * 16).toString(16); }
 
      /* update uuid */
      options.uuid = uuid;
      /* start callback */
      options.start();
 
      /* patch the form-action tag to include the progress-id if X-Progress-ID has been already added just replace it */
      if(old_id = /X-Progress-ID=([^&]+)/.exec($(this).attr("action"))) {
        var action = $(this).attr("action").replace(old_id[1], uuid);
        $(this).attr("action", action);
      } else {
       $(this).attr("action", jQuery(this).attr("action") + "?X-Progress-ID=" + uuid);
      }
      var uploadProgress = $.browser.safari ? progressFrame.jQuery.uploadProgress : jQuery.uploadProgress;
      options.timer = window.setInterval(function() { uploadProgress(this, options) }, options.interval);
    });
  });
  };
 
 
jQuery.uploadProgress = function(e, options) {
  jQuery.ajax({
    type: "GET",
    url: options.progressUrl + "?X-Progress-ID=" + options.uuid,
    dataType: options.dataType,
    success: function(upload) {
      [B]if (upload.state == 'uploading') {
        upload.percents = Math.floor((upload.received / upload.size)*1000)/10;
 
        var bar = $.browser.safari ? $(options.progressBar, parent.document) : $(options.progressBar);
        bar.css({width: upload.percents+'%'});
        options.uploading(upload);
      }
 
      if (upload.state == 'done' || upload.state == 'error') {
        window.clearTimeout(options.timer);
        options.complete(upload);
      }
 
      if (upload.state == 'done') {
        options.success(upload);
      }
 
      if (upload.state == 'error') {
        options.error(upload);
      }[/B]
    }
  });
};
 
})(jQuery);
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.07.2011, 01:05
Ответы с готовыми решениями:

JQuery не корректно отрабатывает в IE8
Есть некий код, который изменяет некоторые свойства формы: function silvercloudSubmit() { var input =...

Функция корректно работает в Delphi 7 и не неверно работает в RAD Studio 10
Переписываю свою программу с Delphi 7 под RAD Studio 10. Столкнулся с проблемой - функция в Delphi 7 возвращает правильное значение, в...

Игра работает корректно в Unity, но не работает после билда
Разрабатываю игру на Android. Решил сделать билд для проверки на телефоне. В Unity все скрипты работают корректно, но после билда, на...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
27.07.2011, 01:05
Помогаю со студенческими работами здесь

Apache+Ubuntu не работает/работает не корректно
Переустановил апачи иии оно не работает. Установка прошла без ошибок, но на старт, рестарт, стоп или запрос статуса никакой реакции....

Не работает модуль (работает не корректно)
Доброго времени суток! Проблема в следующем... На главном шаблоне модуль работает, но я сейчас делаю другой шаблон и в нем новые...

Работает не корректно
Суть задачи в том что бы Написать программу, которая ждет ввода буквы русского алфавита и в зависимости от этого определяет гласная или...

Не корректно работает
I need help. Не могу понять почему мой код при считывание с одного файла и записи в другой пропускает первый символ. Буду очень благодарен...

Не корректно работает
Не корретно выводит блоки body { padding-top: 0; margin:0; padding:0; text-align:center; } ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru