比较来自世界各地的卖家的域名和 IT 服务价格

Response.TransmitFile 并在转移后删除它

我必须实施出口 GEDCOM 在您的网站上。

我的代码 .net 按下导出按钮时在服务器上创建一个文件 gedcom.

然后我需要将其从服务器下载到客户端,以及询问用户在哪里保存此文件,这是必需的 savedialog.

加载后,我想从服务器中删除此文件。

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


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


由此
http://www.west-wind.com/weblog/posts/76293.aspx
但是我无法在此代码之后删除文件
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/;
}

莫问

赞同来自:

如果文件足够小,则可以将其下载到一个字节数组以删除该文件,同时保持发送数据的可能性:


Response.ContentType = "text/xml";
Response.AppendHeader/"Content-Disposition", "attachment; filename=" + FileName/;
string path = Server.MapPath/"~/" + FileName/;
byte[] data = File.ReadAllBytes/path/;
File.Delete/path/;
Response.BinaryWrite/data/;
Response.End//;

要回复问题请先登录注册