tbi*_*hel 5 c# asp.net writefile transmitfile
我必须触发用户下载大文件到webbrowser,我在那里创建要在服务器上传输的文件,然后立即删除它.我已经找到足够的例子来看我应该使用Response.TransmitFile或Response.WriteFile ......但是听说两者都有问题:
WriteFile是同步的,但它会在将文件发送给用户之前将文件缓冲在内存中.由于我正在处理非常大的文件,这可能会导致问题.
TransmitFile不在本地缓冲,因此它适用于大文件,但它是异步的,所以我无法在调用TransmitFile后删除该文件.显然刷新文件并不保证我也可以删除它?
处理这个问题的最佳方法是什么?
还有BinaryWrite ......我可以遍历文件流,将其复制到段中吗?
这是一个很好的解决方案,它使用 TransmitFile 但允许您在使用委托完成后执行某些操作:
http://improve.dk/blog/2008/03/29/response-transmitfile-close-will-kill-your-application
只需将最后的日志记录替换为文件删除即可。
| 归档时间: |
|
| 查看次数: |
12664 次 |
| 最近记录: |