2012-01-19 12 views
0

アップロードの進行状況を受け取るための私の解決策がうまくいくかどうか、それが可能であれば、正しい方法を考えていますか?それは本当に正確である必要はありません、私はほんの少し回転する、アニメーションのアイコンよりも欲しいです。アップロードの処理ページ/////////jQuery/ASP - クッキーを使用して進捗状況をアップロードする

For Each file In myFileArray Then 
    ' Save the file 
    ' Add 1 to a cookie called progressReport 
Next 

3)にアップロードフォームページ////////

Submit upload form & files to processing page. 

2)で

1)フォームページ///////

checkTimer = window.setInterval(function() { 
    var cookieContents = $.cookie('progressReport'); 
    if (cookieContents != "") 
    $('#uploadProgress').html(cookieContents + ' files uploaded'); 
}, 2000); 

---- UPDATE ----

以下の回答のおかげで、ページが処理を終えるまでクッキーが書き込まれない可能性があるため、これを達成できません。つまり、ユーザーは完了するまでフィードバックを得られません。役に立たない!

私は私の計画を変更しました。これはおそらく私のアプリケーションに合っています。

1)一意のIDと「一意のID」という名前のフォルダを作成するAJAX呼び出しサーバーページを作成します。完了したら、IDを返信として返信し、アップロードフォームに一意のIDを隠し入力に追加します。

2)ユーザーがファイルを送信し、チェックIDが非表示の入力に存在し、非表示のiFrameに投稿されます。送信時に、AJAXコールを1〜5秒ごとに別のサーバーページに作成し、そのフォルダ内のファイル数を確認し、数量を返信として送信し、進行状況の更新パネルを送信します。

+1

これはおそらくasp.net _and_ asp-classicの両方に関連していますか? – cdeszaq

+0

@cdeszaq - ファイルを保存してasp.netにクッキーを書くことができるので、asp.netを書く人は、これがうまくいくかどうかを知り、上記のコード例を理解する必要があります。そんな敗者になれない!! – TheCarver

+0

悪いタグのために私がちょうど投票したと信じられません。特別な権限を使って質問を編集してタグを削除してみませんか? – TheCarver

答えて

1

このため、それは動作しません。すべてのファイルが終了するまで

For Each file In myFileArray Then 
    ' Save the file 
    ' Add 1 to a cookie called progressReport 
Next 

がブラウザにクッキーを書き込みません。

これらのファイルをクライアント側から1つずつアップロードする方法を工夫する必要があります。処理ページには1つのファイルのみが受信されます。クッキーの値をインクリメントして応答を終了します。つまり、処理ページはn個のファイルに対してn回呼び出されます。 JavaScriptコードは、2秒ごとにCookieを読み込み、最後の応答で更新された値を表示し続けます。

1

これは可能ですが、クッキーを使用するのは奇妙な方法です。進行状況がサーバー側に格納されている場合は、ajaxリクエストによってクライアントを更新するだけです。間違いなくクッキーを使用することは可能ですが、それは不要です。たとえば、特定のリクエストがステージ1を終えた後、最後に2つが終了するまでクライアントを更新したい場合は、代替として「ロングポーリング」を調べるべきです。または特定のプッシュシステム。

ファイルをアップロードするには、ファイルの進捗状況を示すいくつかの例があります。また、あなたがアップしている場合、HTML5はXMLHttpRequest Level 2と改訂され、アップロードの進捗状況などの管理が容易になりました。

関連する問題