2013-05-28 1 views
-1

을 업로드하는 1기가바이트 전체의 mixmum 가진 사용자가 파일을 업로드 예를 들어 10 개 파일 때문에 100메가바이트의 총 1기가바이트이며,이 후 사용자는 캔트 업로드 설명서의 queue process에서 어떤Plupload 파일 내가 그래서 난 단지 원하는 최대 파일 업로드를 넣을 수있는 내가 원하는</p> <p>알고 난 plupload 큐에 대한 질문이

$(document).ready(function() { 

    $(function() { 
     $("#uploader").pluploadQueue({ 
      runtimes: 'html5, html4', 
      url: '/Upload/Upload', 
      max_file_size: '1gb', 
      unique_names: true, 
      multipart: true, 
      multiple_queues: false, 
      filters: [ 
       { title: "Bestanden", extensions: "jpg,gif,png,docx,wmv,xslx,avi" }, 
      ], 

      preinit: { 
       FileUploaded: function (up, file, response) { 
        var data = response.response; //$.parseJSON(response.response); 

        $('<input>').attr({ 
         type: 'hidden', 
         name: 'fileId' + data, 
         value: data 
        }).appendTo('#uploadFinishedForm'); 

        if (data.error == 1) { 
         uploader.trigger("Error", { message: "'" + data.message + "'", file: file }); 
         console.log('[Error] ' + file.id + ' : ' + data.message); 
         return false; 
        } 
       }, 

       UploadComplete: function (up, files) { 
        window.setTimeout(function (form) { 
       //  $('#uploadFinishedForm').submit(); 
         $('.nextButton').append('<input type="submit" class="btn btn-large btn-success submit-btn" value="Transfer" />'); 
        }, 2000) 

       }, 

       Init: function (up, info) { 
        $('#uploader_container').removeAttr("title"); 
       } 
      } 
     }); 


     $('#uploadForm').submit(function (e) { 
      var uploader = $('#uploader').pluploadQueue(); 
      if (uploader.files.length > 0) { 
       uploader.bind('StateChanged', function() { 
        if (uploader.files.length === (uploader.total.uploaded + uploader.total.failed)) { 
         $('#uploadForm').submit(); 
        } 
       }); 

       uploader.start(); 
      } else { 
       $('#uploadInfo').html('Zonder foto\'s valt er niets te uploaden!'); 
      } 

      return false; 



     }); 

     $(".btnDel") 
       .live("click", function() { 
        if ($("tr.person-input-row").length > 1) { 
         if (confirm("Wilt u deze naam wilt verwijderen?")) { 
          $(this).parents("tr.person-input-row").fadeOut("normal", function() { $(this).remove(); refineIndexes(); }); 
         } 
        } else { 
         alert("Naam kan niet worden verwijderd.\n\nEr dient minimaal 1 email adres opgegeven te worden."); 
        } 
        return false; 
       }); 

     $("#btnAdd") 
       .live("click", function() { 
        // duplicate a row and force unique element id's 
        var table = $("#participants_list"); 
        var tr = table.find('tr:first').next().clone() 
        $(tr).find('input').each(function() { 
         if (this.type === "text") { $(this).val(''); } // clear text 
        }); 
        $(tr).appendTo(table); 

        refineIndexes(); 
       }); 

     function refineIndexes() { 
      // function to duplicate a row and update unique element id's 
      var index = 0; 
      $("#participants_list").find('tr').next().each(function() { 
       $(this).find('input').each(function() { 

        var newId = this.id.replace(parseInt(this.id.match(/[\d\.]+/g)[0], null).toString(), index); 
        var newName = this.name.replace(parseInt(this.name.match(/[\d\.]+/g)[0], null).toString(), index); 

        // IE7 struggling with 'name' attribute 
        if ($.browser.msie && $.browser.version.substr(0, 1) <= 7) { 
         // for readability 
         var oldInput = $(this); 

         // recreate new input and add to DOM 
         var newInput = $("<input type=\"" + this.type + "\" id=\"" + newId + "\" name=\"" + newName + "\" />").addClass(oldInput.attr("class")).val(oldInput.val()).insertAfter(oldInput); 

         // set checked attribute on radio 
         // remove old input from DOM 
         oldInput.remove(); 

        } else { 
         $(this).attr({ id: newId, name: newName }); 
        } 
       }); 

       $(this).find('.num').text(function() { 
        var elSpan = $(this).text(); 
        var nr = parseInt(elSpan.match(/[\d\.]+/g)[0], null); 
        return elSpan.replace(nr.toString(), index + 1); 
       }); 

       $(this).find('label').attr('for', function() { 
        elFor = $(this).attr('for'); 
        var nr = parseInt(elFor.match(/[\d\.]+/g)[0], null); 
        return elFor.replace(nr.toString(), index); 
       }); 
       index++; 
      }); 


     } 



    }); 
}); 
+1

대답을 얻고 싶다면 조금 정중하게 대답해야합니다. 당신이 가지고있는 유일한 대답을 수락하거나 코멘트를 쓰십시오. 왜 동의하지 않으십니까? – trejder

답변

2

모습을 파일니까.

'loaded'와 같은 메소드를 사용하여 업로드 된 총계를 계산 한 다음 사용자가 업로드 할 디렉토리 크기의 총계에서 빼낼 수 있습니다. (Directory_size - uploaded_size = total_available)

그런 다음 total_available이 음수 값이면 거부하는 것을 알고 있습니다.