ブラウザを作成したファイルにリダイレクトする代わりに、独自の HttpHandler を使用して自分でファイルを提供できます。次に、ファイルを提供した直後にファイルを削除することも、メモリ内にファイルを作成することもできます。
PDF ファイルをクライアントに直接書き込みます。
public class MyHandler : IHttpHandler {
public void ProcessRequest(System.Web.HttpContext context) {
context.Response.ContentType = "application/pdf";
// ...
PdfWriter.getInstance(document, context.Response.OutputStream);
// ...
または、既に生成されたファイル 'filename' を読み取り、ファイルを提供して削除します。
context.Response.Buffer = false;
context.Response.BufferOutput = false;
context.Response.ContentType = "application/pdf";
Stream outstream = context.Response.OutputStream;
FileStream instream =
new FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.Read);
byte[] buffer = new byte[BUFFER_SIZE];
int len;
while ((len = instream.Read(buffer, 0, BUFFER_SIZE)) > 0) {
outstream.Write(buffer, 0, len);
}
outstream.Flush();
instream.Close();
// served the file -> now delete it
File.Delete(filename);
このコードは試していません。これはちょうど私がそれがうまくいくと思う方法です...