ユーザーが別のユーザーによってアップロードされたファイルをダウンロードできるようにするコードを書くのはこれが初めてです。
次のようなコードで ASHX ファイル download.ashx を作成しました。
s = context.Request.QueryString.ToString();
byte[] buffer = new ReplacementTicketFileIO().GetSpecifiedFile(s);
context.Response.BinaryWrite(buffer);
context.Response.Flush();
context.Response.End();
ユーザーが適切なクエリ文字列を含む download.ashx へのリンクをクリックすると、ファイルがダウンロードされますが、ブラウザーはコンテンツをブラウザー ウィンドウに表示しようとします。ユーザーがリンクを右クリックすると、ファイルをダウンロードできますが、ファイルの名前はデフォルトで download.ashx になります。
私は2つのことを達成したいと思います:
1)クエリ文字列に基づいて、ユーザーのデバイスにダウンロードされたファイルのデフォルト名を指定できるようにしたいと考えています。
たとえば、ユーザーが download.ashx?linkedfile=car.pdf をクリックした場合、ブラウザのデフォルトでこのファイルの名前が car.pdf になるようにしたいと思います。
2) ブラウザー ウィンドウでリンクを開くのではなく、リンクを保存するようにブラウザーをデフォルト設定したいと思います。
これを行うのは合理的ですか、それともファイルをダウンロードするためのより良い方法はありますか? 私にお知らせください。