如果您正在向客户端写入文件,则Response.WriteFile()
调用Response.Flush()
将确保它已完全输出到客户端.完成后,您可以将其从网络服务器中删除.
如果文件是关键任务,您可能想要一个更强大的系统.比如,用于验证文件是否已收到的客户端脚本,然后警告Web服务器可以删除该文件.
小智 5
这是解决方案,在使用语法后Response.WriteFile(fileName);
,键入以下代码行:
Response.Flush();
System.IO.File.Delete(fullPathFileName);
Response.End();
Run Code Online (Sandbox Code Playgroud)
HttpResponse.WriteFile
它是完全同步的,您可以通过查看Lutz Reflector的实现来看到这一点。您可以在调用 后立即删除该文件Response.WriteFile
。
您无法保证响应流已完全传输到客户端,但调用Response.Flush
也不能为您提供这种保证。Response.Flush
所以我认为在删除文件之前不需要调用。
避免将文件加载到 中MemoryStream
,它不会给您带来任何好处,并且会增加内存使用成本,尤其是对于大文件。