gpt4 book ai didi

c# - Response.TransmitFile 传输完成后删除

转载 作者:太空狗 更新时间:2023-10-29 18:04:57 29 4
gpt4 key购买 nike

我必须在我的站点中实现 GEDCOM 导出。

单击导出到 gedcom 时,我的 .net 代码在服务器上创建了一个文件。

然后我需要将它从服务器下载到客户端,并且应该询问用户该文件的保存位置,这意味着需要 savedialog。

下载后,我想从服务器上删除该文件。

我有一个代码可以将文件从服务器传输到客户端:

Response.ContentType = "text/xml";
Response.AppendHeader("Content-Disposition", "attachment; filename=" + FileName);
Response.TransmitFile(Server.MapPath("~/" + FileName));
Response.End();

从这个LINK

但是我无法在这段代码之后删除文件,因为 Response.End 结束了响应,所以在该行之后编写的任何代码都不会执行。

如果我在 Response.End(); 之前执行删除文件的代码,那么文件不会传输,我会收到错误消息。

最佳答案

您在 Response.End 之后放置的任何内容都不会执行,因为它会抛出 ThreadAbortException 以在该点停止执行页面。

试试这个:

string responseFile = Server.MapPath("~/" + FileName);

try{
Response.ContentType = "text/xml";
Response.AppendHeader("Content-Disposition", "attachment; filename=" + FileName);
Response.TransmitFile(responseFile);
Response.Flush();
}
finally {
File.Delete(responseFile);
}

关于c# - Response.TransmitFile 传输完成后删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2688282/

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