3

XMLHttpRequest 2新しいものがあります。ファイルをアップロードできます。私はそれを機能させました(それは非常に簡単です)。今、そのファイルのアップロードの進行状況を取得する方法があるかどうか疑問に思っています。通常、これには興味がありませんが、Google Chrome (8) では、onreadystatechange イベントがXMLHttpRequestProgressEvent. 進行状況... アップロードの進行状況 (リクエストの状態のみ) については何もありませんが、不思議に思いました。

Google Chrome には、大きなファイルをネイティブにアップロードする際の進行状況「カウンター」があります。標準です。常にそこにあり、構成できません。ステータスバーにあります。Javascriptでそのようなことは可能ですか?素敵な<progress>要素とか入れてみたいです。

SWF や Java アップローダ (ポーリングと >JS コールバックを使用) は必要ありません。ネイティブでなければなりません。ブラウザでできるなら、最近はJavascriptでもできるはずですよね!? =)

no の場合XMLHttpRequest 2、非常に標準的なファイルのアップロード (ajax なしで a のみ) では不可能だと思います<input type=file>

情報をありがとう

4

1 に答える 1

9

進捗イベントをフックします。これにより、すべてのリクエストの進行状況が得られます。最初に、アップロード オブジェクトが使用可能かどうかを確認します。これにより、アップロード部分のみの進行状況がわかります。

このようなもの:

var xhr; // this is your XMLHttpRequest

// hook to upload events if available, otherwise snag all progress events
var eventSource = xhr.upload || xhr;

eventSource.addEventListener("progress", function(e) {
    // normalize position attributes across XMLHttpRequest versions and browsers
    var position = e.position || e.loaded;
    var total = e.totalSize || e.total;

    // TODO: display progress
});
于 2010-12-12T21:28:44.380 に答える