您好,欢迎访问三七文档
C#从服务器下载文件代码一、//TransmitFile实现下载protectedvoidButton1_Click(objectsender,EventArgse){/*微软为Response对象提供了一个新的方法TransmitFile来解决使用Response.BinaryWrite下载超过400mb的文件时导致Aspnet_wp.exe进程回收而无法成功下载的问题。代码如下:*/Response.ContentType=application/x-zip-compressed;Response.AddHeader(Content-Disposition,attachment;filename=z.zip);stringfilename=Server.MapPath(DownLoad/z.zip);Response.TransmitFile(filename);}二、//WriteFile实现下载protectedvoidButton2_Click(objectsender,EventArgse){/*usingSystem.IO;*/stringfileName=asd.txt;//客户端保存的文件名stringfilePath=Server.MapPath(DownLoad/aaa.txt);//路径FileInfofileInfo=newFileInfo(filePath);Response.Clear();Response.ClearContent();Response.ClearHeaders();Response.AddHeader(Content-Disposition,attachment;filename=+fileName);Response.AddHeader(Content-Length,fileInfo.Length.ToString());Response.AddHeader(Content-Transfer-Encoding,binary);Response.ContentType=application/octet-stream;Response.ContentEncoding=System.Text.Encoding.GetEncoding(gb2312);Response.WriteFile(fileInfo.FullName);Response.Flush();Response.End();}三、//WriteFile分块下载protectedvoidButton3_Click(objectsender,EventArgse){stringfileName=aaa.txt;//客户端保存的文件名stringfilePath=Server.MapPath(DownLoad/aaa.txt);//路径System.IO.FileInfofileInfo=newSystem.IO.FileInfo(filePath);if(fileInfo.Exists==true){constlongChunkSize=102400;//100K每次读取文件,只读取100K,这样可以缓解服务器的压力byte[]buffer=newbyte[ChunkSize];Response.Clear();System.IO.FileStreamiStream=System.IO.File.OpenRead(filePath);longdataLengthToRead=iStream.Length;//获取下载的文件总大小Response.ContentType=application/octet-stream;Response.AddHeader(Content-Disposition,attachment;filename=+HttpUtility.UrlEncode(fileName));while(dataLengthToRead0&&Response.IsClientConnected){intlengthRead=iStream.Read(buffer,0,Convert.ToInt32(ChunkSize));//读取的大小Response.OutputStream.Write(buffer,0,lengthRead);Response.Flush();dataLengthToRead=dataLengthToRead-lengthRead;}Response.Close();}}四、//流方式下载protectedvoidButton4_Click(objectsender,EventArgse){stringfileName=aaa.txt;//客户端保存的文件名stringfilePath=Server.MapPath(DownLoad/aaa.txt);//路径//以字符流的形式下载文件FileStreamfs=newFileStream(filePath,FileMode.Open);byte[]bytes=newbyte[(int)fs.Length];fs.Read(bytes,0,bytes.Length);fs.Close();Response.ContentType=application/octet-stream;//通知浏览器下载文件而不是打开Response.AddHeader(Content-Disposition,attachment;filename=+HttpUtility.UrlEncode(fileName,System.Text.Encoding.UTF8));Response.BinaryWrite(bytes);Response.Flush();Response.End();}//----------------------------------------------------------publicvoidDownloadFile(System.Web.UI.PageWebForm,StringFileNameWhenUserDownload,StringFileBody){WebForm.Response.ClearHeaders();WebForm.Response.Clear();WebForm.Response.Expires=0;WebForm.Response.Buffer=true;WebForm.Response.AddHeader(Accept-Language,zh-tw);//'文件名称WebForm.Response.AddHeader(content-disposition,attachment;filename='+System.Web.HttpUtility.UrlEncode(FileNameWhenUserDownload,System.Text.Encoding.UTF8)+');WebForm.Response.ContentType=Application/octet-stream;//'文件内容WebForm.Response.Write(FileBody);//-----------WebForm.Response.End();}//上面这段代码是下载一个动态产生的文本文件,若这个文件已经存在于服务器端的实体路径,则可以通过下面的函数:publicvoidDownloadFileByFilePath(System.Web.UI.PageWebForm,StringFileNameWhenUserDownload,StringFilePath){WebForm.Response.ClearHeaders();WebForm.Response.Clear();WebForm.Response.Expires=0;WebForm.Response.Buffer=true;WebForm.Response.AddHeader(Accept-Language,zh-tw);//文件名称WebForm.Response.AddHeader(content-disposition,attachment;filename='+System.Web.HttpUtility.UrlEncode(FileNameWhenUserDownload,System.Text.Encoding.UTF8)+');WebForm.Response.ContentType=Application/octet-stream;//文件内容WebForm.Response.Write(System.IO.File.Rea}dAllBytes(FilePath));//---------WebForm.Response.End();}一、//TransmitFile实现下载protectedvoidButton1_Click(objectsender,EventArgse){/*微软为Response对象提供了一个新的方法TransmitFile来解决使用Response.BinaryWrite下载超过400mb的文件时导致Aspnet_wp.exe进程回收而无法成功下载的问题。代码如下:*/Response.ContentType=application/x-zip-compressed;Response.AddHeader(Content-Disposition,attachment;filename=z.zip);stringfilename=Server.MapPath(DownLoad/z.zip);Response.TransmitFile(filename);}二、//WriteFile实现下载protectedvoidButton2_Click(objectsender,EventArgse){/*usingSystem.IO;*/stringfileName=asd.txt;//客户端保存的文件名stringfilePath=Server.MapPath(DownLoad/aaa.txt);//路径FileInfofileInfo=newFileInfo(filePath);Response.Clear();Response.ClearContent();Response.ClearHeaders();Response.AddHeader(Content-Disposition,attachment;filename=+fileName);Response.AddHeader(Content-Length,fileInfo.Length.ToString());Response.AddHeader(Content-Transfer-Encoding,binary);Response.ContentType=application/octet-stream;Response.ContentEncoding=System.Text.Encoding.GetEncoding(gb2312);Response.WriteFile(fileInfo.FullName);Response.Flush();Response.End();}三、//WriteFile分块下载protectedvoidButton3_Click(objectsender,EventArgse){stringfileName=aaa.txt;//客户端保存的文件名stringfilePath=Server.MapPath(DownLoad/aaa.txt);//路径System.IO.FileInfofileInfo=newSystem.IO.FileInfo(filePath);if(fileInfo.Exists==true){constlongChunkSize=102400;//100K每次读取文件,只读取100K,这样可以缓解服务器的压力
本文标题:C从服务器文件代码
链接地址:https://www.777doc.com/doc-2908383 .html