問題タブ [fileresult]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - ASP.NET MVC アプリケーションでの奇妙なファイル ダウンロード動作
MVC アプリにアクション メソッドがありFileResult
、データベースに BLOB として保存されたファイルに基づいて を返します。Content
根本的な問題は、データベースの列に正しい内容がエンコードされていることを確認したにもかかわらず、ファイルの種類によっては、ファイルを要求すると空のファイルが返されることです。
しかし、本当に奇妙なのは、これを引き起こしている原因を正確に特定するのがいかに難しいかということです. ここに私が理解できないいくつかの落とし穴があります:
*.txt
や*.csv
PDF などのダウンロード中に空のファイルが返されるなどのテキスト ファイルのダウンロードは正常に機能します。これは CI サーバーでのみ発生し、ローカル ワークステーションでは再現できません。これらは私が考えることができる唯一の違いです:
- 自分のマシンでは機能するコミットが CI サーバーでは機能しないことを確認しました
- ローカル ワークステーションを CI サーバーのデータベース エンジンに接続しようとしましたが、再現できませんでした。言い換えれば、問題はデータベースではなくコードにあります (しかし、指摘されているように、ローカルで動作する同じコードは CI サーバーでは動作しません...)。
- CI サーバーは IIS7 を実行し、Visual Studio に同梱されている IIS Express でローカルにテストします。
これをトラブルシューティングするにはどうすればよいですか? 何が原因でしょうか?
c# - FilePathResult は swf ファイルでは機能しませんか?
FileResult を使用して、Web サイトのファイルを次のように表示しています。
次のタグでは機能せず、ブラウザはファイルを表示する代わりにダウンロードしようとしています!
何が問題なのですか、どうすれば修正できますか?
c# - FileResult から byte[] を取得することは可能ですか?
C#byte[]
から取得することは可能ですか?FileResult
c# - WebAPI HttpResponseMessage 使用時のダウンロード ファイル プロンプト
API に HttpResponseMessage を返すメソッドがあります。
私の MVC Web アプリケーションには、API を呼び出してファイルを返す必要があるコントローラー アクションがあります。
API URL に直接アクセスすると、ユーザー名とパスワードの入力を求められ、[ファイルの保存] ダイアログが表示され、ファイルをダウンロードできます。
Web アプリケーションのアクションに移動すると、次の応答出力が画面に表示されます。
FileResult を返す必要があると思いますが、HttpResponseMessage を FileResult に変換する方法がわかりません。
javascript - FileResultを使用してプロンプト「名前を付けて保存...」でファイルを保存します
テキストをクリックしたときに特定のファイルをダウンロードする必要があります。通常の [名前を付けて保存] ダイアログでファイルの保存場所を選択する必要があると思いますが、表示されません。リクエストとレスポンスはOKです。
リクエスト/レスポンス ヘッダー
GET /Survey/GetSurveyFile?survey=1085&surveyFileType=2 HTTP/1.1
ホスト: localhost:50518
接続: キープアライブ
ユーザーエージェント: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (Gecko のような KHTML) Chrome/44.0.2403.107 Safari/537.36 OPR/31.0.1889.99
受け入れる: /
X-Requested-With: XMLHttpRequest
======================
HTTP/1.1 200 OK
キャッシュ制御: プライベート
コンテンツ タイプ: アプリケーション/オクテット ストリーム
サーバー: Microsoft-IIS/8.0
X-AspNetMvc-バージョン: 5.2
Content-Disposition: 添付; filename="1052__1183__1291__Variable Header Definition.txt"
X-AspNet バージョン: 4.0.30319
X-SourceFiles: =?UTF-8?B?UzpcVlNTb3VyY2VcUHJvamVrdGVcTU1JXGJmdWVudGVzXE1NSVxNaW5kc2hhcmUuTU1JXE1NSVxTdXJ2ZXlcR2V0U3VydmV5RmlsZQ==?=
永続的な認証: true
X-Powered-By: ASP.NET
日付: 2015 年 8 月 17 日 (月) 14:21:48 GMT
コンテンツの長さ: 333
私のコード:
Javascript
コントローラ
どうすれば目的の動作を得ることができますか?
c# - FilePathResult の完了イベント
ユーザーがダウンロードを完了した後に何かをしたい
私が試したのは、次のイベントをテストコントローラーに追加することですが、ユーザーがダウンロードを完了する前にすべてのイベントが発生します(呼び出されないデストラクタを除く)
c# - ブラウザに表示するのではなく、動的に生成された画像をダウンロードする
URL(HTML)のコンテンツを画像(JPG)に変換するアクションを作成し、それを返しましたが、ブラウザはそれを表示する代わりにダウンロードしています。
画像は動的に生成されます。ハードディスクにはありません。
私のコードは次のとおりです。
ダウンロードする代わりにブラウザで表示するにはどうすればよいですか?
asp.net-mvc - mvc アクションから Excel にエクスポートする際の問題
一部のコンテンツを Excel ファイルとしてダウンロードする簡単なアクションを作成しました。
私はそれに2つの問題があります:
1.ファイルはダウンロードされましたが、開くことができず、警告が表示されます。
ファイル形式またはファイル拡張子が無効なため、Excel でファイルを開けません。ファイルが破損していないこと、およびファイル拡張子がファイルの形式と一致していることを確認してください。
古い Excel 形式を使用する場合:
ファイルを開くことはできますが、ファイルが破損しているなどの 3 つの異なる警告が表示された後です。
ところで、保存を比較して、ファイルをpdfとして書き込もうとしました
それでもファイルを開くことができませんでした-フォーマットが無効であるなどのメッセージが表示されました.
2.内容は 2 番目の例のファイルに表示されますが、カンマは列区切りとして認識されず、行内のすべてのデータは 1 つの列として書き込まれます。
Excel形式に使用する区切り記号、またはデータをファイルに書き込んで表のExcel形式にする方法は?
私にとって理想的な解決策は、エクスポートされたビュー(厳密に型指定されたもの)を返すことですが、これまでのところ、その方法がわかりませんでした。
--- 編集: 実用的なソリューション ---
asp.net - FileResult が適切なファイル タイプとファイル名を返さない
と呼ばれる ActionResult を持つ ASP.NET MVC アプリケーションがありますGenerateReport
。Excelファイルを保存するためにバイト配列を返そうとしています。スニペットは次のとおりです。
...
ファイルを保存するように求められたとき、ときどき (常にではありません) "GenerateReport" で何をしたいか尋ねられます。ファイルに ActionResult と同じ名前を付けており、ファイルの種類を指定していません。保存をリクエストすると、保存に失敗したと表示されます。[再試行] を選択すると、正常に保存されます。次に、名前を .xlsx に変更すると、すべてのデータが正しく表示されます。私は IE9 と Chrome を使用していますが、Chrome で発生していることに気づいていません。残念ながら、IE9 で動作する必要があります。
コンテンツ タイプとファイル名を時々取得できない理由を知っている人はいますか?