問題タブ [filestreamresult]
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# - mvc 4で既にダウンロードが進行中の場合、ユーザーが別のファイルをダウンロードできないようにする
最初のファイルのダウンロードがまだ完了していない場合、ユーザーが 2 番目のファイルをダウンロードできないように制限したいのですが、私のアプローチは、finished 属性が false のデータベースにファイルをダウンロードするためのレコードを挿入することです。ダウンロードが終了したら、finished = true; を変更します。そのため、ユーザーは別のファイルをダウンロードできます。ダウンロードが完了したかどうかを知るために、FileStreamResult から派生した ControlledFileStreamResult という名前のクラスを作成しました。および IResultFilter を実装する Filter。このフィルターで。ControlledFileStreamResult のプロパティ値を制御する方法で OnResultExecuted を実装し、DownloadCompleted == true の場合はデータベースを更新し、finished = true; を設定します。または DownloadCanceled == true の場合、db からレコードを削除します。
このアプローチは、ユーザーが Internet Download Manager や同様のダウンロード マネージャー プログラムを使用してファイルをダウンロードするまではうまく機能します。ダウンロードがキャンセルされた場合、OnResultExecuted はキャッチできません。また、これらのタイプのプログラムが複数回送信されたリクエストを使用したため、ダウンロードが正常に完了した場合、データベースからレコードを削除したり、finished=true を設定したりすることができません。
c# - StreamResult がファイル全体を返さないのはなぜですか?
コントローラーからクライアントに大きなファイル (200-800MB) を提供する必要があります。FileStreamResult をテストしましたが、このクラスはファイル全体をメモリにバッファリングしました。この動作は、私のプロジェクトには十分ではありません。
さらに、ここからアプローチをテストします: http://support.microsoft.com/kb/812406。メモリに関しては、これはかなり良いように見えますが、ファイルはクライアントに完全にダウンロードされていません (元のファイルは 210222 KB で、ダウンロードされたファイルは 209551 から 209776 です)。これは、約 0.5 MB が失われていることを意味します (その結果、ファイルが破損します)。
誰かアイデアはありますか?とにかくこれを行う最良の方法は何ですか?すべてに感謝しています。
将来のユーザーのために、リンクは次のコードを指していました。
アップデート
これは私の行動です:
ブラウザからアクションを直接呼び出すだけです ( http://xxx.xxx/Other/TransferTest )。
.net - Response.Cache + FileStreamResult = NullReferenceException
私の mvc 4 アプリケーションには、紺碧のブロブからファイルをストリーミングするメソッドがあります。
私のコードは非常に単純です。ストリームしたいブロブをフェッチして、それを FileStreamResult として返すだけです。
このコードは正常に動作します。しかし、キャッシュヘッダーも設定したいので、ファイルを返す前に、次のようにヘッダーを設定します。
奇妙なことに、Response.Cache を変更しても機能しません。
私が得ているのはすべてエラーです:
オブジェクト参照がオブジェクト インスタンスに設定されていません。
私は実際に例外の原因を見つけようとしましたが、それは常にApplication_EndRequest
.
Response.Cache
を設定するとすべてが壊れる理由が本当にわかりません。
スタックトレースから:
[NullReferenceException: オブジェクト参照がオブジェクトのインスタンスに設定されていません。] System.Web.HttpContext.RequestRequiresAuthorization() +30
System.Web.Caching.OutputCacheModule.OnLeave(オブジェクト ソース、EventArgs eventArgs) +9778761 System.Web.SyncEventExecutionStep. System.Web.HttpApplication.IExecutionStep.Exec ute() +136
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +69
「Response.Cache」オブジェクトに関係する何かが破棄されるのが早すぎると思います。キャッシュヘッダーを手動で設定してみるべきでしょうか?
asp.net-mvc - WCF サービスからメソッドを呼び出して MVC からドキュメントを表示する
指定した文書IDの文書を表示したい。このために、MVC プロジェクトから WCF サービスを呼び出しています。
MVC プロジェクトの HomeController.cs で
WCF サービス プロジェクトの DocumentService.svc.cs 内
エラー:
タイプ 'System.Web.Mvc.FileStreamResult' をシリアル化できません。これを DataContractAttribute 属性でマークし、シリアル化するすべてのメンバーを DataMemberAttribute 属性でマークすることを検討してください。ÿ型がコレクションの場合は、CollectionDataContractAttribute でマークすることを検討してください。
誰が私が間違っているのか教えてください。
c# - FileStreamResult を使用してダウンロード フォルダーのパスを取得する方法
ダウンロードが成功したか失敗したかを記録する必要があります。宛先パスを指定するのは簡単ですが、問題は、宛先パスが使用するブラウザで指定されたデフォルトの「ダウンロード」フォルダである場合です。
私のコードは次のようなものです:
ダウンロードするのは Zip ファイルですが、宛先も記録する必要があります
に関するいくつかの投稿を読みましたが、実際には役に立ちませんでした...
ありがとう!
c# - HTTPHandler 対 ASP.NET MVC FileStreamResult
クライアントブラウザに送信する前に、いくつかのxmlファイルを読み取ってHTMLに変換する必要があるASP.Net MVCアプリケーションに取り組んでいます。
処理されたストリームをクライアント ブラウザに送り返すための最良のオプションを提案できる人がいるかどうか疑問に思っていました。1> Asp.Net MVC の FileStreamResult 結果タイプを使用するか、または 2> 統合モードで IIS 7.5 の HTTPHandler を使用します。
また、どのオプションがパフォーマンスと共により最適化されたソリューションになりますか?
asp.net-mvc-4 - MVC4でブラウザ(インラインコンテンツ配置)でmsワード文書ファイルを開く方法
ブラウザでファイル (インライン モード) を開こうとしています。メモ帳と PDF ファイルでは正常に機能しますが、MS Office ファイル (MS Word、MS Excel) では機能しません。Ms office ファイルの場合、ブラウザで常にダウンロード画面が表示されます。次のコードを使用しています:
手伝ってくれますか?
asp.net-mvc - ストリーム経由でファイルを送信するときの例外
Dropbox から直接ファイルをダウンロードしたい.Dropbox から直接ダウンロードしたいファイルのコンテンツを取得できます.ストリーム経由でブラウザにファイルを送信できません. 次の例外: タイプ 'System.UnauthorizedAccessException' の例外が mscorlib.dll で発生しましたが、ユーザー コードで処理されませんでした
追加情報: パス 'C:\Program Files (x86)\IIS Express\FirstLab_1.pdf' へのアクセスが拒否されました。(FileStream fileStream = new FileStream(filename, FileMode.Create)) を使用する行で
以下は私のコードです:
長い間この例外を解決しており、解決策を得ることができなかったため、ファイルをドロップボックスから直接ダウンロードするのを手伝ってください。