ページを 2 つに分割することもできます。1 つはファイル アップロード コントロールを備え、もう 1 つは AJAX を介して 3 ~ 4 秒ごとにポーリングし、新しいファイルがあるかどうかを確認します。
サイド "A" には、標準のファイル アップロード コントロールがあり、アップロードされたファイルを保存する標準の .NET 方法を使用します (FileUpload.PostedFile.SaveAs(path)、簡単なものを参照)。ファイルのアップロードが完了したら、このページを更新してください。
サイド「B」は、AJAX 呼び出し、XML、JSON、または単純なテキストからコンテンツを取得する div です。「link.aspx」という AJAX ページを用意して、コンテンツを好きな形式で表示します。
リンクについては、「ダウンロード」ウィンドウを強制する場合は、ファイルがブラウザで通常表示されないタイプである必要があるか、別の aspx ページを使用してファイルを提供し、強制的にダウンロードする必要があります。保存または開くためのダイアログ。
そのaspxページは「file.aspx」のような名前になり、クエリ文字列パラメーター(「id」など)を渡して、必要なファイルを伝えることができます。このページの背後にあるコードは、そのクエリ文字列パラメーターから必要なファイルを特定し、ファイルを提供します。
Response.AddHeader("Content-Disposition", "attachment; filename=" + file.fileName);
Response.AddHeader("Content-Length", file.Length.ToString());
Response.ContentType = "image/jpeg"; // you gotta figure out the content type of the file here though. This is just the one for JPEGS.
byte[] buffer = new byte[file.Length];
dl.Read(buffer, 0, (int)file.Length);
Response.BinaryWrite(buffer);
Response.End();