javascript
  • ruby-on-rails-3
  • paperclip
  • plupload
  • 2011-11-15 21 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

    でアップロードを開始する必要があります。私は(私は問題はそれをあなたがそれを呼び出すようにしようとしている道をやっていた)のように、私のアップローダーを呼び出すのルート下に行ってきた:

    $(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

    以下のようにautostartプロパティをtrueに設定する必要がありますされてちょうどこの方法

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

    これによりスタートアップロード]ボタンをトリガー100ミリ秒待たずにファイルをアップロードします。

    +0

    これは私のために働く私はバージョン2.1.9を使用しています – tyan

    関連する問題