javascript
  • ruby-on-rails-3
  • paperclip
  • plupload
  • 2011-11-15 1 views 17 likes 
    17

    파일이 추가되면 업로드 프로세스가 자동으로 시작됩니다. FilesAdded의 끝에서 start 함수를 호출했지만 업로드를 시작하지 않습니다.Plupload 파일 추가시 자동으로 업로드 시작

    uploader.bind('FilesAdded', function(up, files) { 
         var str = ""; 
         for (var i in files) { 
         str += '<div id="' + files[i].id + '">' + files[i].name + ' (' + plupload.formatSize(files[i].size) + ') <b></b></div>'; 
         } 
         $('#filelist').html(str); 
         up.refresh(); 
         up.start(); 
        }); 
    

    여기에 파일이 추가 될 때 업로드를 시작합니다 당신의 FilesAdded 바인딩에 up.start() 추가 내 생성 코드

    var uploader = new plupload.Uploader({ 
         runtimes: 'html5,flash,silverlight', 
         autostart : true, 
         url: '<%= images_path %>', 
         max_file_size: '10mb', 
         multipart: true, 
         browse_button: "pickfiles", 
         container: "the-uploader", 
         drop_element : "drop-area", 
         multipart_params: { 
         '_http_accept': 'application/javascript', 
         '<%=request_forgery_protection_token%>': '<%=form_authenticity_token%>', 
         '<%=request.session_options[:key]%>': '<%=request.session_options[:id]%>' 
         }, 
         filters: [ 
         {title: "Images", extensions: "avi,jpg,jpeg,png,zip"} 
         ], 
        }); 
    
    +0

    어떤 일이 일어나고 있는지 자세히 설명해 주실 수 있습니까? HTML 디스플레이가 업데이트됩니까? 서버 로그에 아무것도 있습니까? – muffinista

    답변

    28

    입니다. 나는 같은 내 업 로더를 호출 경로 내려 갔어요 (I 문제가 그에게 방법을하고 당신이 그것을 호출하려고했다) :

    $(function() { 
        // Setup html5 version 
        $("#html5_uploader").pluploadQueue({ 
         // General settings 
         runtimes : 'html5', 
         url : 'upload.php', 
         max_file_size : '10mb', 
         chunk_size : '1mb', 
         unique_names : true, 
         dragdrop : true, 
         multiple_queues : false, 
         multi_selection : false, 
         max_file_count : 1, 
    
         // Specify what files to browse for 
         filters : [ 
         {title : "Text files", extensions : "txt"} 
         ], 
    
         init : { 
         FilesAdded: function(up, files) { 
          up.start(); 
         }, 
         UploadComplete: function(up, files) { 
          $.each(files, function(i, file) { 
          // Do stuff with the file. There will only be one file as it uploaded straight after adding! 
          }); 
         } 
         } 
        }); 
        }); 
    
    +0

    오류가 발생했습니다 plupload.full.min.js : 14 Uncaught SYNTAX_ERR : SYNTAX_ERR : DOMException 12, 버전 2.1.9를 사용하여 up.start()를 사용합니다. – tyan

    12

    이 버전을 작동하지 않았다 나를 위해를하지만 일을했다 :

    FilesAdded: function(up, files) { 
        setTimeout(function() { up.start(); }, 100); 
    }, 
    

    타이머를 100ms 후에 설정하여 시작을 실행하십시오. 내가 테스트하는 동안 JQuery와 UI 버전을 사용하고이 오류 가지고 있어요 ". 당신이 그것을 바인딩은 기본 핸들러를 결합 이후 초기화 후 확인"

    g("#" + l.id).position() is null 
    
    /js/plupload/js/jquery.ui.plupload/jquery.ui.plupload.js 
    
    +0

    'start()'를 계속 실행하지 않습니까? – Aistis

    13

    그래서 코드 :

    uploader.bind('FilesAdded', function(up, files) {...}); 
    

    당신이

    uploader.init(); 
    

    more information

    +2

    이것이 해결책입니다, 감사합니다 – NicoGranelli

    +1

    이상한! 왜 이런 식으로 작동하는지 궁금합니다. – jontro

    +1

    답변을 받아 들여야합니다. –

    3

    나는 또한 나를 위해 같은과 그것을 할 방법은 아래에서 발견하고자있었습니다.

    파일을 추가하는 것은 단지 후 자동으로 파일 업로드를 시작하는 새로운 방법은

    $("#uploader").plupload({ 
        ..... 
        autostart: true, 
        ..... 
    }); 
    
    2

    그냥 이런 식으로

    FilesAdded: function(up, files) { 
        $('#fileupload_start').click(); 
    }, 
    

    이를하여 업로드 시작 버튼을 트리거 아래처럼 autostart 속성을 true로 설정해야합니다 100ms를 기다리지 않고 파일을 업로드합니다.

    +0

    이 작품은 나를 위해 버전 2.1.9 사용하고 있습니다. – tyan

     관련 문제

    • 관련 문제 없음^_^