[解決済み] ASP.NET Web APIでダウンロードするファイル名を設定する方法
2022-04-28 12:57:07
質問
ApiControllerクラスで、サーバーが作成したファイルをダウンロードするために、以下のメソッドを用意しています。
public HttpResponseMessage Get(int id)
{
try
{
string dir = HttpContext.Current.Server.MapPath("~"); //location of the template file
Stream file = new MemoryStream();
Stream result = _service.GetMyForm(id, dir, file);
if (result == null)
{
return Request.CreateResponse(HttpStatusCode.NotFound);
}
result.Position = 0;
HttpResponseMessage response = new HttpResponseMessage();
response.StatusCode = HttpStatusCode.OK;
response.Content = new StreamContent(result);
return response;
}
catch (IOException)
{
return Request.CreateResponse(HttpStatusCode.InternalServerError);
}
}
デフォルトのダウンロードファイル名がそのIDであるため、ユーザーが毎回名前を付けて保存するダイアログで自分のファイル名を入力しなければならないかもしれないことを除いて、すべてが完璧に動作しています。上記のコードでデフォルトのファイル名を設定する方法はありますか?
解決方法は?
を設定する必要があります。
Content-Disposition
ヘッダを
HttpResponseMessage
:
HttpResponseMessage response = new HttpResponseMessage();
response.StatusCode = HttpStatusCode.OK;
response.Content = new StreamContent(result);
response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
{
FileName = "foo.txt"
};
関連
-
[解決済み] EntityTypeにキーが定義されていないエラー
-
[解決済み】エラー「必要なフォーマルパラメータに対応する引数が与えられていない」を解決する?
-
[解決済み] Microsoft Officeをインストールせずに、C#でExcel(.XLSおよび.XLSX)ファイルを作成するにはどうすればよいですか?
-
[解決済み] HTTP POST Web リクエストの作成方法
-
[解決済み] Chromeを使用してASP.NET Web APIがXMLの代わりにJSONを返すようにするにはどうすればよいですか?
-
[解決済み] ファイルアップロード ASP.NET MVC 3.0
-
[解決済み] ASP.NET Web APIに整数の配列を渡しますか?
-
[解決済み] ASP.NET Web APIでエラーを返すためのベストプラクティス
-
[解決済み】ASP.NET Web APIでコントローラからバイナリファイルを返す。
-
[解決済み】ASP.NET Web APIのJWT認証について
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】「未割り当てのローカル変数を使用」とはどういう意味ですか?
-
[解決済み】コンパイルエラー「未割り当てのローカル変数を使用しています」が発生したのはなぜですか?
-
[解決済み】スクリプトクラスが見つからないので、スクリプトコンポーネントを追加できない?
-
[解決済み】取り消せないメンバはメソッドのように使えない?
-
[解決済み] [Solved] アセンブリ System.Web.Extensions dll はどこにありますか?
-
[解決済み】"指定されたパスのフォーマットはサポートされていません。"
-
[解決済み】ファイルへの読み書きの際に共有違反のIOExceptionが発生する C#
-
[解決済み】ランダムなブーリアンを生成する最速の方法
-
[解決済み】データが存在しないのに読み込もうとする試みが無効である
-
[解決済み】ASP.NET MVCでファイルを表示/ダウンロードに戻す場合