ダウンロード リンクをクリックすると、ユーザーにファイルを配信する次のコードがあります。セキュリティ上の理由から、ファイルに直接リンクすることはできないため、これは URL をデコードしてファイルを送信するように設定されています。
しばらくは正常に動作していましたが、最近、ファイルのダウンロードが開始されるという問題が発生し始めましたが、ファイルのサイズがわかりません。
このため、ダウンロードを停止する必要があるときに停止しません。
ファイルは約 99 MB ですが、ダウンロードすると、ブラウザは 100 MB を超えてダウンロードし続けます。何をダウンロードしているのかわかりませんが、キャンセルしないと止まりません。
TransmitFile
それで、私の質問は、適切なタイミングで停止するように、ファイルのサイズも送信されるようにするための代替手段または方法はありますか?
コードは次のとおりです。
string filename = Path.GetFileName(url);
context.Response.Buffer = true;
context.Response.Charset = "";
context.Response.Cache.SetCacheability(HttpCacheability.NoCache);
context.Response.ContentType = "application/x-rar-compressed";
context.Response.AddHeader("content-disposition", "attachment;filename=" + filename);
context.Response.TransmitFile(context.Server.MapPath(url));
context.Response.Flush();
WriteFile
ファイルが非常に大きいため、ファイル全体をメモリにロードしたくないため、使用したくありません。
ありがとう。