ボタン付きの ASP Web フォーム ページがあります。ポストバック時に、ボタンは一部の XML コンテンツをファイルとしてユーザーに送り返します。これは機能していますが、長さが 16759 の文字列の場合、ダウンロードされたファイルが 10 バイト短くなりました。Chrome と Firefox の両方で同じ動作が見られました。
解決策は、コンテンツ タイプを「text/xml」(「text/plain」も試しました) から「application/octet-stream」に変更することでした。ただし、他のコンテンツ タイプがこのように動作する理由を理解したいと思います。
私のコードは次のとおりです。(私はいくつかの異なる方法で遊んでみましたが、何も変わりませんでした)
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.ContentType = "text/plain";
HttpContext.Current.Response.AddHeader("Content-Length", content.Length.ToString());
HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment; filename=\"test.txt\"");
HttpContext.Current.Response.Write(content);
HttpContext.Current.Response.Flush();
HttpContext.Current.Response.Close();