19

更新パネルがあります。更新パネルにはファイルアップロードコントロールとボタンコントロールがあります。ボタンをクリックすると、updatepanelのファイルアップロードコントロールにアップロードしたファイルが必要になります。

正確なシナリオ、ページに8つのタブがあり、各タブに含まれる情報が多すぎます。タブの1つは添付ファイルです。ユーザーが[新しい添付ファイルの追加]モーダルポップアップをクリックすると、モーダルにはUpdatepanelの詳細ビューが含まれ、詳細ビューにはファイルアップロードコントロールがあります。ユーザーが保存ボタンを押すと、detailsview挿入イベントが発生しました。挿入イベントでは、アップロードしたファイルが必要です。
注意してください、私のページは重いので、完全なpostBackは必要ありません。


誰かがこの問題の解決策を持っていますか?

あなたの親切な助けに前もって感謝します.....

4

6 に答える 6

36

この問題を解決するには、次の手順を参照してください。

  1. 詳細ビューにajax-uploadを追加します。
    • Resource#1のようなiframeベースのアップローダー。
    • SilverlightベースおよびFlashベースのアップローダー。現在のアップロードステータスを表示するためのサーバー側スクリプトを必要としないため、この手法が気に入っています。ただし、HTML5では、Webブラウザプラグインを使用せずにこれを作成できます。
    • Resource#2のような商用アップローダー。アップロードに非表示のiframeを使用します。
  2. ファイルを一時的な場所にアップロードします。

    • システムは一時的な場所に応答します。次に、クライアントは一時的な場所を詳細形式の非表示の入力に保持します。
    • session_idで一時的な場所を保持します。フレームワークに応じて、データベースまたはセッション変数に保存できます。
  3. 保存ボタンをクリックすると、システムはファイルを実際の場所に移動します

ノート。システムは、期限切れのファイルを一時的な場所から自動的に削除します。

リソース

  1. リアルタイムプログレスバーを使用したASP.NETファイルのアップロード
  2. GmailのようなASP.NETファイルのアップロード(商用)

アップデート

ほぼ1年後、私はこの質問に対する優れたサードパーティのコントロールを見つけました。これはjQueryのオープンソースプラグインです。Pluploadという名前で、HTML5、Silverlight、Flash、または通常のフォームを使用してファイルをアップロードでき、アップロードの進行状況、画像のサイズ変更、チャンクアップロードなどの独自の機能を提供します。

ここをクリックすると、Pluploadを試してテストできます。

于 2009-04-28T10:27:18.540 に答える
4

協調するバイナリがクライアントにインストールされていないと実行できません。AJAXフレームワークがファイルの内容を読み取り、それをサーバーに送信できるようにするための安全なメカニズムはありません。ブラウザは、ファイル入力ボックスからのマルチパートフォーム投稿としてのみそれをサポートします。

于 2009-04-28T10:19:21.227 に答える
1

問題は、HTML ファイル アップロード コントロールの動作方法にあり、ASP.net とは関係ありません。ファイル アップロード コントロールを動作させるには、フォーム データの完全な投稿が必要です。実際のアップロードを行う非表示のiframeですべての操作を行うことにより、完全なポストバックを行っていないことをシミュレートすることしかできません

于 2009-06-09T20:08:22.833 に答える
0

この機能を提供しているサイトは、通常、フラッシュまたはiframeを使用しているため、ポストバックはiframeで発生し、ajaxリクエストのように見えます。

HTH

OneSHOT

于 2009-06-08T10:31:07.320 に答える
0

swfupload( http://swfupload.org/ )を試しましたが、IE以外のブラウザーでフォーム認証を使用している場合は、フープを飛び越えなければならないことに注意してください。これは明らかにフラッシュバグであり、フラッシュ10では修正されていません。このバグのためにフレームワークで使用しないことにしましたが、それ以外は素晴らしい製品でした。

于 2009-06-11T18:41:21.280 に答える
0

YUI のアップローダー ウィジェットをお勧めします。http://developer.yahoo.com/yui/uploader/を参照してください。

目的を達成するために使用できると思います。JavaScript は、アップロードが完了した後、サーバーからクライアントにファイルをフェッチする必要があります。ただし、ページは更新されません。アップロードはフラッシュと非表示の iframe を介して行われます。ファイルの内容をユーザーに表示するためのダウンロードは、ajax を介して行われます。

ユーザーがアップロードを「承認」しない場合は、サーバーに対して別の ajax 呼び出しを行い、ファイルを削除します。

于 2009-06-12T03:01:07.320 に答える