1

SQL データベースから生成し、System.Xml.XmlWriter オブジェクトを使用してクライアントの Web ブラウザーにストリーミングする大きな XML ファイルがあります。問題は、ユーザーが Web ページにアクセスするたびに、170MB のファイルが DB に生成され、再度転送されることです。

ファイルをユーザーにストリーミングして、できるだけ早く取得し、結果を Web サーバー上のファイルに保存したいと思います。その後のリクエストでは、最初にファイルが存在するかどうかを確認します。その場合、DB を呼び出す代わりにファイルを送信します。

私の質問: Response.Output オブジェクトに書き込まれた内容をファイルに保存するにはどうすればよいですか?

4

2 に答える 2

0

バッファを使用して、データの一部をバッファに保存し、同時にそれらを送信して保存することができます...ここに例があります:

byte[] buffer = new byte[4096];
int sourceBytes;
do
{
    // read it - or fix the buffer content
    sourceBytes = fs.Read(buffer, 0, buffer.Length);

    // out put to the client
    context.Response.OutputStream.Write(buffer, 0, sourceBytes);
    // saved it to the file.
    sWriter.Write(buffer, 0, sourceBytes);

} while (sourceBytes > 0);
于 2013-05-13T16:48:49.517 に答える