Tal*_*joe 21
由于您使用的是MVC,最好的方法是使用FileStreamResult:
return new FileStreamResult(stream, "application/pdf")
{
FileDownloadName = "file.pdf"
};
Run Code Online (Sandbox Code Playgroud)
与您的控制器一起玩Response.Write或Response.OutputStream从您的控制器进行游戏是非惯用的,并且没有理由在已经存在时编写您自己的ActionResult.
小智 12
一种方法如下:
//assuming you have your FileStream handle already - named fs
byte[] buffer = new byte[4096];
long count = 0;
while ((count = fs.Read(buffer, 0, buffer.Length)) > 0)
{
response.OutputStream.Write(buffer, 0, count);
response.Flush();
}
Run Code Online (Sandbox Code Playgroud)
您还可以使用GZIP压缩来加速文件到客户端的传输(流式传输的字节数更少).
在asp.net中,这是下载pdf文件的方法
Dim MyFileStream As FileStream
Dim FileSize As Long
MyFileStream = New FileStream(filePath, FileMode.Open)
FileSize = MyFileStream.Length
Dim Buffer(CInt(FileSize)) As Byte
MyFileStream.Read(Buffer, 0, CInt(FileSize))
MyFileStream.Close()
Response.ContentType = "application/pdf"
Response.OutputStream.Write(Buffer, 0, FileSize)
Response.Flush()
Response.Close()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
70494 次 |
| 最近记录: |