2

ユーザーが複数のファイルをサーバーにアップロードできるようにする必要があるため、SWFUploadユーティリティを使用しています。SWFUpload はファイルを 1 つずつ送信するため、それらすべてを同じ一時ディレクトリに格納する必要があります。ハンドラーASP.NETはファイルを 1 つずつ受信し、ファイルを適切に保存できます。

私の問題は次のとおりです。どのファイルが同じアップロードに属しているかを知るにはどうすればよいですか? 言い換えると、ハンドラーでファイルを接続するにはどうすればよいですか?

4

1 に答える 1

2

これを行うには 2 つの方法があります (ただし、同じ考え方を継承しています)。

アイデアは、パラメーターのようなものを持っている必要があることに基づいていsessionIdます。この値は、ファイルのセットごとに一意である必要があります。javascript uuidジェネレーターなどを使用できます。

さらに、このsessionId変数はクエリ文字列 (ハンドラーの URL を少し変更) を介して渡すことも~/UploadHandler.ashx?sessionId={whatever}、投稿パラメーターとして渡すこともできます (より良い方法だと思います)。値は、次のように使用してサーバー側で取得できますcontext.Request["SessionId"]

クライアント側では、投稿パラメーターまたはハンドラー URL を動的に変更できる必要があります。以下を使用して実行できます。

void addPostParam(name, value)

addPostParam 関数は、アップロードされたすべてのファイルの POST で送信される名前と値のペアを追加します。

名前と値のペアは、post_params 設定にも表示されます。

また

void setUploadURL(url)

upload_url 設定を動的に変更します。

クライアントメソッド。から呼び出す必要があります。

fileDialogComplete(number of files selected, number of files queued, total number of files in the queued)

fileDialogComplete イベントは、ファイル選択ダイアログ ウィンドウが閉じられ、選択されたすべてのファイルが処理された後に発生します。「キューに入れられたファイルの数」引数は、(キュー内のファイルの数ではなく) ダイアログの選択からキューに入れられたファイルの数を示します。

方法。

お役に立てれば。

于 2010-03-18T20:38:17.587 に答える