2012-09-13 6 views
8

blueimp jquery-file-uploadプラグインのプログレスバーを実装しますが、progressコールバックはアップロード開始直後に1回だけ発生します。ロード==データ。合計。プログレスコールバックはjquery-file-uploadプラグインで常に100%のアップロードを表示します

<input data-url="/ads/32/photos" id="image" name="image" type="file" /> 

$(".upload-btn input").fileupload({ 
    dataType: "json", 
    progress: function(e, data) { 
     alert(data.loaded + "/" + data.total); 
    }, 
    done: function(e, data) { 
     alert("done"); 
    } 
    }); 

秒後(アップロードが完了すると)に完了コールバックが発生し、アップロードが成功したことをサーバーログ経由で確認できます。私もprogressallコールバックを使用しようとすると私は同じ動作を取得します。

わからない、それが関係していますが、それを追加するとどのようなので、これまで起こってから任意のアップロードの活動を妨げるので、私は現在jquery.fileupload-fp.jsライブラリを含めていないよ場合。

私が間違っていることを知っていますか?

+1

@クリスねえ、あなたはこの問題を解決することができましたか?私は同じ問題に直面しています。 – varunvlalan

答えて

-1

は、文字列 "100%" INGの進捗機能alertですか?私はプラグインに慣れていないんだけど、progress機能についてalertの式はStringタイプにすべてをキャストします。だから私はそれが文字列 "x/y"を表示することを期待します。これらの属性(totalloaded)が正しければ、あなたが

alert(data.loaded/data.total); // no quotes, no +'s 

progress機能を変更する必要がありますいずれにせよ

、それはあなたが望む行動を与える必要があります。

編集:何が起きているのかを明確にするために、これがあなたの質問に答えた場合:+オペレータは、オペランドのデータ型に応じてさまざまな動作をします。一緒にあなた+二つの数字ならば、それは算術加算演算子として動作します。 オペレータのうち1つでもが文字列の場合、+は最初に他のオペランドを最初に文字列に変更し、次にを連結してを連結します。最終結果は数字ではなく文字列になります。

var two = "2"; // two is a String data type 
alert(two + 2); // Returns "22" as a String 

var two = 2; 
alert(two + 2); // Returns 4 

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Arithmetic_Operators#Addition

関連する問題