我在C#开发的Web中作了个报表系统
客户端点击统计后,先在服务器端生成一个excel文件,然后提示用户下载。但是用户下载完成后我怎么删除这个服务器端的文件呢也就是说我想扑捉到用户下载完成,或者取消下载的地方,好删除服务器端的临时文件。
谢谢
以下是提供下载的相关代码。我该怎么做,才能及时地把服务器端的临时文件删除呢
System.IO.FileInfo file = new System.IO.FileInfo(path);System.Web.HttpContext.Current.Response.Clear();
System.Web.HttpContext.Current.Response.Charset="GB2312";
System.Web.HttpContext.Current.Response.ContentEncoding=System.Text.Encoding.UTF8;
// 添加头信息,为"文件下载/另存为"对话框指定默认文件名
System.Web.HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment; filename=" + System.Web.HttpContext.Current.Server.UrlEncode(file.Name));
// 添加头信息,指定文件大小,让浏览器能够显示下载进度
System.Web.HttpContext.Current.Response.AddHeader("Content-Length", file.Length.ToString());// 指定返回的是一个不能被客户端读取的流,必须被下载
System.Web.HttpContext.Current.Response.ContentType = "application/ms-excel";
// 把文件流发送到客户端
System.Web.HttpContext.Current.Response.WriteFile(file.FullName);
// 停止页面的执行
System.Web.HttpContext.Current.Response.End();
客户端点击统计后,先在服务器端生成一个excel文件,然后提示用户下载。但是用户下载完成后我怎么删除这个服务器端的文件呢也就是说我想扑捉到用户下载完成,或者取消下载的地方,好删除服务器端的临时文件。
谢谢
以下是提供下载的相关代码。我该怎么做,才能及时地把服务器端的临时文件删除呢
System.IO.FileInfo file = new System.IO.FileInfo(path);System.Web.HttpContext.Current.Response.Clear();
System.Web.HttpContext.Current.Response.Charset="GB2312";
System.Web.HttpContext.Current.Response.ContentEncoding=System.Text.Encoding.UTF8;
// 添加头信息,为"文件下载/另存为"对话框指定默认文件名
System.Web.HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment; filename=" + System.Web.HttpContext.Current.Server.UrlEncode(file.Name));
// 添加头信息,指定文件大小,让浏览器能够显示下载进度
System.Web.HttpContext.Current.Response.AddHeader("Content-Length", file.Length.ToString());// 指定返回的是一个不能被客户端读取的流,必须被下载
System.Web.HttpContext.Current.Response.ContentType = "application/ms-excel";
// 把文件流发送到客户端
System.Web.HttpContext.Current.Response.WriteFile(file.FullName);
// 停止页面的执行
System.Web.HttpContext.Current.Response.End();
要想删除,很简单
别这种下 http://your.xls
自己写个 服务端
aspx啥的http://your.aspx 通过访问这个网页下 这样你就能控制服务器端发出的东西,删除也就不是问题,当然要是以某种流的形式发送 客户端也得做相应的接收。
我是先有个Excel模版,打开模版,填写数据,然后另存到服务器某个文件夹,提供下载的
怎么另存到内存中,又怎么让客户端下载呢??
往不吝赐教。最好能详细点。因为这个任务很急。谢谢了
除非你的excle简单到能在客户端生成,而服务器端只给传数据就行。
否则就得通过网页或服务下载这个文件以便删除。
(俺就会这么多)
WriteFile(string filename, bool readIntoMemory)
将readIntoMemory设置为true,在WriteFile后增加删除文件的代码即可
怎么把文件读到MemoryStream中呢?