0

既存の PDF コンテンツを編集する機能を作成し (テキストと画像を追加)、その後、この PDF ファイルを印刷またはダウンロード用に開いており、このコードを使用しています。BinaryWrite

byte[] outBuf = outStream1.GetBuffer();
HttpContext.Current.Response.Expires = 0;
HttpContext.Current.Response.Buffer = true;
HttpContext.Current.Response.ClearContent();
HttpContext.Current.Response.AddHeader("content-disposition",  "attachment;filename="test.pdf");
HttpContext.Current.Response.ContentType = "application/pdf";
HttpContext.Current.Response.ContentEncoding = new System.Text.UTF8Encoding();
HttpContext.Current.Response.BinaryWrite(outBuf);
outStream.Close();
HttpContext.Current.Response.End();

ローカルマシンまたは開発サーバーで正常に動作し、サーバーでしばらく動作しています。しばらくするとサーバーで空白のページが開きます。また、ブラウザのキャッシュをクリアしたり、一時ファイルをクリアしたりしても、クライアントのブラウザのメモリに問題がある可能性があります。ただし、ブラウザのメモリの問題である場合は、同じブラウザを使用しているため、ローカルでも発生するはずです。

このことを整理できるように、アイデアまたは解決策を教えてください。

4

2 に答える 2

1

このGetBufferメソッドは、最初にメモリ ストリームがバイト配列から読み取り専用ストリームとして作成された場合にのみ、メモリ ストリームの内容を正確に返します。それ以外の場合は、最後に未使用のバイトが含まれている可能性がある内部バッファーを返します。

ToArrayメソッドを使用して、メモリ ストリームの内容を正確に取得します。

byte[] outBuf = outStream1.ToArray();
于 2013-07-12T12:35:10.780 に答える