C#从服务器上面读取文件,然后下载到本地可以用WriteFile()或者TransmitFile()方法实现,代码如下:
//1、TransmitFile实现下载protected void Button1_Click(object sender, EventArgs e)
{
/
微软为Response对象提供了一个新的方法TransmitFile来解决使用ResponseBinaryWrite
下载超过400mb的文件时导致Aspnet_wpexe进程回收而无法成功下载的问题。
代码如下:
/
ResponseContentType = "application/x-zip-compressed";
ResponseAddHeader("Content-Disposition", "attachment;filename=zzip");
string filename = ServerMapPath("DownLoad/zzip");
ResponseTransmitFile(filename);
}
//2、WriteFile实现下载
protected void Button2_Click(object sender, EventArgs e)
{
/
using SystemIO;
/
string fileName = "asdtxt";//客户端保存的文件名
string filePath = ServerMapPath("DownLoad/aaatxt");//路径
FileInfo fileInfo = new FileInfo(filePath);
ResponseClear();
ResponseClearContent();
ResponseClearHeaders();
ResponseAddHeader("Content-Disposition", "attachment;filename=" + fileName);
ResponseAddHeader("Content-Length", fileInfoLengthToString());
ResponseAddHeader("Content-Transfer-Encoding", "binary");
ResponseContentType = "application/octet-stream";
ResponseContentEncoding = SystemTextEncodingGetEncoding("gb2312");
ResponseWriteFile(fileInfoFullName);
ResponseFlush();
ResponseEnd();
}服务端获取客户端文件没有这个可能!安全性问题。除非FileUpload控件,你可以用FileUpload控件里的方法获取文件大小,文件命,文件内容没试过。获取到这些,可以不用保存在服务器端。 FileUpload属于被动的,不属于主动。需要客户端 *** 作才能进行。所以这个在安全范围是允许的。
还有就是ActiveX插件了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)