マルチパートHTTP応答のカスタムActionResultですか?
-
06-07-2019 - |
質問
httpリクエストに、txtファイルとhtmlページの両方で応答したい。このようにして、クライアントはファイルを保存し、htmlページを介してそのファイルの内容の概要を表示できます。
ファイルはオンザフライで生成されるため、サーバーの状態管理を使用して、2番目の要求で概要を生成する必要があります。これを回避し、これを単一の応答にまとめたいと思います。
カスタムActionResultはどのように見えますか?
解決
これは SOでもここで説明されていました。
iは次のように答えました:
いいえ、マルチパートの添付ファイル ダウンロード(メールなど)はありません セキュリティ上の理由でサポートされています。それは 「ドライブバイダウンロード」と呼ばれます。
Gmailはこれを次の方法で処理します。 ファイルを動的に圧縮します。君は あまりにもする必要があります。 http://forums.asp.net/t/1240811.aspx
最新のブラウザはmultipart / mixedをサポートしていません。
他のヒント
XSLTスタイルシートを参照してXMLを送信できます。ブラウザーは変換を行い、結果のHTML出力を表示できます。
そして、ユーザーは「ファイル->名前を付けて保存...」を簡単に実行できます。 XMLファイルを保存します。
通常のHTMLビューとして要約をレンダリングせず、その要約の下に、バイナリデータを返す別のActionResultを指すリンクを提供する理由...
public ActionResult SendFile(int id)
{
File file = FileRepository.GetFile(id);
byte[] fileData = file.FileData.ToArray();
return File(fileData, file.FileMimeType, file.FileName);
}
このトピックについていくつか検索しましたが、驚いたことに、これはすでに人々が行ったようです。 こちらの説明を見つけましたが、公開されていませんURIをテストするため、ブラウザの動作をテストできませんでした。また、アーカイブファイルをクライアントに送信するソリューションについても言及しています。しかし、私はそれがあなたが探しているものではないと思いますか?
こちらは、マルチパートの例を示す別の記事です反応。残念ながら、デモURIはもう機能していないようです。
したがって、状況は次のとおりです。HTTPマルチパート応答を実行できます。アプリケーションコードでそれらを処理するクライアント(少数)ライブラリがあります。ブラウザの動作をテストする必要があります(こちらは音声)。この機能の使用は実験的であり、相互運用性の問題を排除するために通信の両端を制御できる場合にのみ推奨される場合があります。