Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Загрузка файлов, с отдачей в js % 
:(
    Опции темы
Predator199
Дата 4.4.2013, 15:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 412
Регистрация: 1.2.2012

Репутация: -3
Всего: -4



Сделал загрузку файлов, вреде все работает. Теперь ахото  информировать пользователя о том, скок залил.
Хочу сделать так, когда загрузка началась. Отдавать каждую 0.5 сек, проценты о том скок залили.
Вопрос. Как узнать через php, скок байт уже загружено?
PM MAIL   Вверх
Aliance
Дата 4.4.2013, 15:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 14
Всего: 137



Цитата(Predator199 @  4.4.2013,  16:17 Найти цитируемый пост)
Отдавать каждую 0.5 сек, проценты о том скок залили.

это не так делается. А если время заливки файла 0,3 секунды тогда что - будет скачок?
PM MAIL WWW ICQ Skype   Вверх
s0lman
Дата 4.4.2013, 16:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и лохматый
**


Профиль
Группа: Участник
Сообщений: 637
Регистрация: 1.11.2007
Где: Ukraine

Репутация: 9
Всего: 29



Цитата(Predator199 @  4.4.2013,  14:17 Найти цитируемый пост)
Отдавать каждую 0.5 сек, проценты о том скок залили.


Помнится, инфу для этого nginx умеет отдавать http://wiki.nginx.org/HttpUploadProgressModule


--------------------
Когда я уже выучусь на волшебника? :(
PM   Вверх
Predator199
Дата 4.4.2013, 16:39 (ссылка)    | (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 412
Регистрация: 1.2.2012

Репутация: -3
Всего: -4



У меня уже ест плагин js и не хотелось бы менять на другой. 
Скажите как и чем дополнить js, чтоб выводить информацию о загрузке. Или хотяб каким способом?
PM MAIL   Вверх
Sanchezzz
Дата 4.4.2013, 20:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1670
Регистрация: 19.11.2006
Где: Voronezh

Репутация: 41
Всего: 60



Хы боюсь некто не будет вам его допиливать это не маленькая работа + вы еще не указали что за плагин...

qqFileUploder уммеет это делать из коробки...



--------------------
Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS.
PM MAIL Skype GTalk   Вверх
Predator199
Дата 4.4.2013, 21:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 412
Регистрация: 1.2.2012

Репутация: -3
Всего: -4



Я не хочу чтоб за меня дописали. Просто скажите, откуда берутся те или иные цифры. По которым можно построить график или перевести в проценты   и тп.
PM MAIL   Вверх
Aliance
Дата 5.4.2013, 10:15 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 14
Всего: 137



Цитата(Predator199 @  4.4.2013,  22:20 Найти цитируемый пост)
Просто скажите, откуда берутся те или иные цифры. По которым можно построить график или перевести в проценты   и тп. 

тебе ее дали в 3 посте, хватит уже троллить.
PM MAIL WWW ICQ Skype   Вверх
Sanchezzz
Дата 5.4.2013, 11:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1670
Регистрация: 19.11.2006
Где: Voronezh

Репутация: 41
Всего: 60



Код

 var xhr = this._xhrs[id] = new XMLHttpRequest();
        var self = this;
                                        
        xhr.upload.onprogress = function(e){ // данный метод подерживают не все браузеры всех времен. WebKit все работают .
            if (e.lengthComputable){
                self._loaded[id] = e.loaded;  
                self._options.onProgress(id, name, e.loaded, e.total);   // своя функция по обработке 
            }
        };

        xhr.onreadystatechange = function(){            
            if (xhr.readyState == 4){
                self._onComplete(id, xhr);                    
            }
        };

На копай если саому лень было какойто плагин было распатрошить 


--------------------
Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS.
PM MAIL Skype GTalk   Вверх
krundetz
Дата 5.4.2013, 11:51 (ссылка) |    (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вечный странник
***


Профиль
Группа: Завсегдатай
Сообщений: 1400
Регистрация: 14.6.2007
Где: НН(Сормово)

Репутация: 20
Всего: 69



Цитата(Predator199 @  4.4.2013,  21:20 Найти цитируемый пост)
Просто скажите, откуда берутся те или иные цифры.

откуда те цифры науке не известно,  а вот иные берутся изменением тех.

P.S. Какой вопрос такой ответ. Удачи в поиске иных чисел.


--------------------
!цензоры - Хранитель стратегической жидкости
Группа ТГВ
Группа Нижний Новгород
user posted image
PM MAIL   Вверх
Predator199
  Дата 9.4.2013, 17:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 412
Регистрация: 1.2.2012

Репутация: -3
Всего: -4



Никак не выходит.
Название плагина: ajaxupload.js

Код


(function($){

    $.ajax_upload = function(button, options){

        return new Ajax_upload(button, options);
    };

    /**
     * @param button Element that will be used as file upload button
     * @param option User options
     */
    var Ajax_upload = function(button, options){
     
        this.button = button;
        this.wrapper = null;
        this.form = null;
        this.input = null;
        this.iframe = null;
        this.disabled = false;
        this.submitting = false;
        this.settings = {
            data: {},
            name: 'file',
            onSubmit: function( extension) {},
        };

        $.extend(this.settings, options);

        this.create_wrapper();
        this.create_input();
        this.iframe =$('<iframe name="iframe_au"></iframe>').css('display', 'none').appendTo('body');
    }
    // assigning methods to our class
    Ajax_upload.prototype = {
        disable : function(){
            this.disabled = true;
            if ( ! this.submitting)
                this.input.attr('disabled', true);
        },
        create_wrapper : function(){
            // Shorten names
            var button = this.button, wrapper;

            wrapper = this.wrapper = $('<div></div>')
                .insertAfter(button)
                .append(button);

            setTimeout(function(){
                wrapper.css({
                    position: 'relative'
                    ,display: 'block'
                    ,overflow: 'hidden'
                    ,height: button.outerHeight(true)
                });
            }, 1);

            var self = this;
            wrapper.mousemove(function(e){            
                self.input.css({
                    top: e.pageY - wrapper.offset().top - 5 + 'px'
                    ,left: e.pageX - wrapper.offset().left - 170 + 'px'
                    ,cursor: 'pointer'
                });
            });


        },
        /**
         * Creates invisible file input above the button
         */
        create_input : function(){
            var self = this;

            this.input =
                $('<input type="file" />').attr('name', this.settings.name)
                .css({
                    'position' : 'absolute'
                    ,'margin': 0
                    ,'padding': 0
                    ,'width': '220px'
                    ,'heigth': '10px'
                    ,'opacity': 0
                }).change(function(){            
                    self.submitting = true;
                    self.submit();
                    self.submitting = false;
                }).appendTo(this.wrapper);
        },

        /**

         */
        submit : function(){
            var self = this, settings = this.settings;
            var file = this.file_from_path(this.input.val());
            if (settings.onSubmit.call(this, file, this.get_ext(file)) === false){
                if (self.disabled)
                    this.input.attr('disabled', true);
                return;
            }

            this.create_form();
            this.input.appendTo(this.form);
            this.form.submit();
            this.input.remove(); this.input = null;
            this.form.remove();    this.form = null;
            this.submitting = false;
            this.create_input();
            
            var iframe = this.iframe;
            iframe.load(function(){
               
                settings.onComplete.call(self, eval("(" + iframe.contents().find('body').html() +")"));            
            });
        },
        /**
         *     ,
         */
        create_form : function(){
            this.form =$('<form method="post" enctype="multipart/form-data"></form>').appendTo('body')
                .attr({
                    "action" : this.settings.action
                    ,"target" : this.iframe.attr('name')
                });

            for (var i in this.settings.data){
                $('<input type="hidden" />').appendTo(this.form)
                    .attr({
                        'name': i
                        ,'value': this.settings.data[i]
                    });
            }
        },
        file_from_path : function(file){
            var i = file.lastIndexOf('\\');
            if (i !== -1 )
                return file.slice(i+1);
            
            return file;
        },
        get_ext : function(file){
            var i = file.lastIndexOf('.');
                
            if (i !== -1 )
                return file.slice(i+1);
        },    
    };
})(jQuery);


$(document).ready(function(){
     $.ajax_upload($('#uploadButton'), {
    action: '/upload.php',
    data: {id: 'y'},
    dataType:'json',
        onComplete: function(result) {    
              alert(result.status);    
     }
     });     
})

Код

<a style="float:right;" id="uploadButton" class="submit">Загрузить аватар</a>



Сам плагин немного изменил под себя. Весь код в оформлении, должен работать. Подскажите как и что дописать в него?

Это сообщение отредактировал(а) Predator199 - 9.4.2013, 17:59
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0814 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.