用HttpResponse传输文件到客户端,文件被占用没释放.本地测试没问题,服务器上就出错.

问题描述

从服务器数据库导出数据到本地的Excel文件:先用OleDb导出数据保存为服务器的Excel文件;再用HttpResponse把文件作为流传到客户端.用HttpResponse把文件作为流传到客户端的代码如下:System.IO.FileInfofileDownLoad=newSystem.IO.FileInfo(path);Response.Clear();Response.Charset="GB2312";Response.ContentEncoding=System.Text.Encoding.UTF8;Response.AddHeader("Content-Disposition","attachment;filename="+Server.UrlEncode(fileName));Response.AddHeader("Content-Length",fileDownLoad.Length.ToString());Response.ContentType="application/Excel";Response.WriteFile(fileDownLoad.FullName);HttpContext.Current.ApplicationInstance.CompleteRequest();现在发现文件保存到客户端后,服务器上的文件仍被占用.请问:如何释放这个文件?但是这种情况只有在布署到服务器上才会出现,在本机测试没有问题.

解决方案

解决方案二:
fileDownLoad.Close();Response.Close();
解决方案三:
好像不行哦..用Response.Close();就卡住不动了..
解决方案四:
自己顶个,谢谢大家帮忙!
解决方案五:
我现在用数据流传递的方式下载到客户端,也就是把数据写到StringWriter,用Response.Write(sw)传送.这倒不会出现什么问题了,但是保存的Excel文件是不规范的,用倒是可以用,但每次打开都会提示格式不规范.还烦请诸位有好点子帮帮兄弟,谢了!

时间: 2024-10-28 21:34:37

用HttpResponse传输文件到客户端,文件被占用没释放.本地测试没问题,服务器上就出错.的相关文章

MVC上传文档本地测试成功,server上失败,可能原因除了文件夹权限还有哪些

问题描述 MVC写的一个系统,上传文件功能每次本地测试均能正常运行,放到服务器都失败,我试过修改server文件夹权限,还是不行,也许是我修改的不对,代码量有些大不方便贴,求高手意见,如若必要贴出关键代码.小弟初入职,还望不吝赐教啊. 解决方案 解决方案二:贴异常内容stacktrace解决方案三:不贴出错,怎么搞?解决方案四:代码奉上:这是JS写的上传文件代码,后台Controller有相应处理函数,本地测试无问题,放到服务器一直停在最后一个else,不解啊functiontoFileUplo

C# C/S程序局域网传输文件,客户端100台左右,请问用什么方案或者技术好

问题描述 C#C/S程序局域网传输文件,客户端100台左右,请问用什么方案好?我之前直接就用共享文件夹的形式,但是它需要依赖服务器windows服务"server"的支持,但是有时候server会自动停止了,造成客户端无法访问服务器共享文件夹的文件,造成错误,请问各位大哥大姐用什么方案或者什么技术可行呢? 解决方案 解决方案二:还有就是C/S程序客户端访问服务器的sqlserver数据库一般用什么形式去访问呢,直接IP地址访问吗?这样形式依然是依赖服务器的windows服务"

java socket 通信 服务端接收的文件大于客户端发出的文件 是什么鬼

问题描述 java socket 通信 服务端接收的文件大于客户端发出的文件 是什么鬼 //服务端package Socket; import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.DataInputStream;import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;

代码-.net B/S结构的程序 客户端如何播放服务器上的WAV音乐文件

问题描述 .net B/S结构的程序 客户端如何播放服务器上的WAV音乐文件 首先我的程序是B/S结构的 服务器上有一个自动录音功能,文件路径如:D:/RecordFile/[2014-12-10]/82237883_13920701254_20141210141256.wav 这个路径是存在数据库中的,可以直接取到数据. 那请问现在我要在客户端的一个页面上播放这个服务器上的录音文件,代码该如何写?(客户端点击播放按钮可以直接听到wav文件的声音) 还有客户端使用的浏览器是IE浏览器,因为是服务

关于Adodb.Stream的写数据库数据到客户端文件的实践

ado|stream|客户端|数据|数据库 这是一个从服务器数据库直接下数据到客户端文件的例子,文件名和扩展名可以根据需要随便写.new/temp.htm要求真实存在,其实没有什么作用,只是引导一下,否则不能对stram数据进行写操作.网络上流传的这方面的东西不少,但多数是copy来的,很简单的事情搞得那么复杂.真正经过实践的东东少得可怜.于是自己写了一个,虽然简单,也有些问题,但是copy下去就可以用了.有问题的朋友可以跟我联系,好一起学习. filemystream=server.mappa

浅谈FireFox中file控件不能取到客户端文件的完整路径的问题

相信很多人都使用过<input type="file"/>这样的HTML控件,它看起来 非常普通,是我们在做Web应用程序中用于上传客户端本地文件时不可缺少的控件 ,然而最近我发现这个控件在最新的FireFox浏览器(或者最新的IE8中也会存在 这个问题,我没有尝试过,读者可以试一下)中却失去了效果,导致我们在通过 这个控件的value属性得到的值中只包含了文件名而没有文件路径,这个在IE7中 是可以正常获取到全文件名的(即文件完整路径+文件名).IE7和大部分当前流 行的

NTFS For Mac如何传输和删除数据文件

  NTFS For Mac是为解决Windows和Mac OS X不兼容问题而开发的档案系统驱动,可以让人们在Mac OS X下完全读/写访问NTFS档案系统的任何版本.那么这个插件到底该如何使用呢? 当人们在Mac上插入移动硬盘或者是外置存储器的时候,就会出现外置存储器的相关信息,如下图所示: 图一:使用效果图 Unlike 与Mac OS X默认驱动不同,您可在NTFS卷册上进行任何操作,比如: 1.传输数据 图二:数据传输图 人们可以对外置存储设备上的数据进行传输,无论是传输到自己的ma

方法-.net B/S结构的程序 客户端如何播放服务器上的WAV音乐文件

问题描述 .net B/S结构的程序 客户端如何播放服务器上的WAV音乐文件 首先我的程序是B/S结构的服务器上有一个自动录音功能,文件路径如:D:/RecordFile/[2014-12-10]/82237883_13920701254_20141210141256.wav这个路径是存在数据库中的,可以直接取到数据.那请问现在我要在客户端的一个页面上播放这个服务器上的录音文件,代码该如何写?(客户端点击播放按钮可以直接听到wav文件的声音)还有客户端使用的浏览器是IE浏览器,因为是服务器的文件

asp.net服务器端获取客户端文件的创建时间

问题描述 asp.net服务器端获取客户端文件的创建时间 asp.net系统客户端批量上传文件,怎么在服务器端获取客户端的这些文件的创建时间!