gpt4 book ai didi

c# - WriteFile 与 TransmitFile 适用于传输后需要从服务器删除的大文件

转载 作者:太空狗 更新时间:2023-10-29 23:11:37 28 4
gpt4 key购买 nike

我必须触发用户将大文件下载到网络浏览器,我在其中创建要在服务器上传输的文件,然后立即将其删除。我已经找到了足够多的示例,可以看出我应该使用 Response.TransmitFile 或 Response.WriteFile...但听说这两者都存在问题:

WriteFile 是同步的,但它会在将文件发送给用户之前将文件缓冲在内存中。由于我正在处理非常大的文件,这可能会导致问题。

TransmitFile 不在本地缓冲,因此它适用于大文件,但它是异步的,因此我无法在调用 TransmitFile 后删除文件。显然刷新文件也不能保证我可以删除它?

处理这个问题的最佳方法是什么?

还有 BinaryWrite ......我可以遍历文件流,分段复制吗?

最佳答案

这是一个很好的解决方案,它使用 TransmitFile 但允许您在使用委托(delegate)完成后执行某些操作:

http://improve.dk/blog/2008/03/29/response-transmitfile-close-will-kill-your-application

只需将最后的日志记录替换为文件删除即可。

关于c# - WriteFile 与 TransmitFile 适用于传输后需要从服务器删除的大文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2187252/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com