asp.net实现网站上传下载功能的几种方法

能实现网站下载的功能语言都是动态语言,除了asp.net,还有php,jsp等,这里以asp.net为例。

这种可以实现多种网站下载功能, 代码如下:

//TransmitFile实现下载
    protected void Button1_Click(object sender, EventArgs e)
     {

Response.ContentType = "application/x-zip-compressed";
         Response.AddHeader("Content-Disposition", "attachment;filename=z.zip");
        string filename = Server.MapPath("DownLoad/aaa.zip");
         Response.TransmitFile(filename);
     }

//WriteFile实现下载
    protected void Button2_Click(object sender, EventArgs e)
     {

string fileName ="aaa.zip";//客户端保存的文件名
        string filePath=Server.MapPath("DownLoad/aaa.zip");//路径

FileInfo fileInfo = new FileInfo(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分块下载
    protected void Button3_Click(object sender, EventArgs e)
     {

string fileName = "aaa.zip";//客户端保存的文件名
        string filePath = Server.MapPath("DownLoad/aaa.zip");//路径

System.IO.FileInfo fileInfo = new System.IO.FileInfo(filePath);

if (fileInfo.Exists == true)
         {
            const long ChunkSize = 102400;//100K 每次读取文件,只读取100K,这样可以缓解服务器的压力
            byte[] buffer = new byte[ChunkSize];

Response.Clear();
             System.IO.FileStream iStream = System.IO.File.OpenRead(filePath);
            long dataLengthToRead = iStream.Length;//获取下载的文件总大小
             Response.ContentType = "application/octet-stream";
             Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(fileName));
            while (dataLengthToRead > 0 && Response.IsClientConnected)
             {
                int lengthRead = iStream.Read(buffer, 0,

Convert.ToInt32(ChunkSize));//读取的大小
                 Response.OutputStream.Write(buffer, 0, lengthRead);
                 Response.Flush();
                 dataLengthToRead = dataLengthToRead - lengthRead;
             }
             Response.Close();
         }
     }

//流方式下载
    protected void Button4_Click(object sender, EventArgs e)
     {
        string fileName = "aaa.zip";//客户端保存的文件名
        string filePath = Server.MapPath("DownLoad/aaa.zip");//路径

//以字符流的形式下载文件
         FileStream fs = new FileStream(filePath, FileMode.Open);
        byte[] bytes = new byte[(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();

}

完毕(end)

时间: 2024-10-06 03:56:18

asp.net实现网站上传下载功能的几种方法的相关文章

Asp.net实现MVC处理文件的上传下载功能实例教程

这篇文章主要介绍了Asp.net实现MVC处理文件的上传下载功能,比较全面而系统的对Asp.net MVC的文件上传下载功能进行了深入分析,有很好的借鉴价值,需要的朋友可以参考下 上传于下载功能是程序设计中非常常见的一个功能,在ASP.NET程序开发中有着非常广泛的应用.本文就以实例形式来实现这一功能. 一.概述 如果你仅仅只有Asp.net Web Forms背景转而学习Asp.net MVC的,我想你的第一个经历或许是那些曾经让你的编程变得愉悦无比的服务端控件都驾鹤西去了.FileUploa

java上传下载功能的实现

上传下载是很简单的功能,但是每次用的时候还是要查,这里整理一下 前台:   <form action="xxoo.do" enctype="multipart/form-data" method="post"> <input type="file" name="file" />  <button type="submit" class="btn b

asp.Net文件的上传下载(2) 转

Asp.net 上传.下载文件 2011-01-08 16:21:48|  分类: .NET |  标签: |举报 |字号大中小 订阅 首先我们要判断用户是否选择了要上传文件,我们可用下面这句实现: if(File1.PostedFile.ContentLength>0)  如果用户有上传的文件,则:   string name = File1.PostedFile.FileName ;//获取输入的文件名字      int i= name.LastIndexOf(".") ;

asp.net文件的上传下载

Web.Config 配置文件 <?xml version="1.0"?> <configuration> <appSettings>    <add key="FileUploadPath" value="Upload/" />    <add key="FileTypeLimit" value=".zip,.rar,.dox,.ppt,.txt,.mp3&qu

JavaWeb实现文件上传下载功能实例解析

转:http://www.cnblogs.com/xdp-gacl/p/4200090.html JavaWeb实现文件上传下载功能实例解析 在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用Servlet获取上传文件的输入流然后再解析里面的请求参数是比较麻烦,所以一般选择采用apache的开源工具common-fileupload这个文件上传组件

JavaWeb实现文件上传下载功能实例解析 (好用)

转: 转:http://www.cnblogs.com/xdp-gacl/p/4200090.html JavaWeb实现文件上传下载功能实例解析 在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用Servlet获取上传文件的输入流然后再解析里面的请求参数是比较麻烦,所以一般选择采用apache的开源工具common-fileupload这个文件上

基于Java的一个简单的文件上传下载功能

最近在公司给客户端做接口,有一个图片上传和文件下载的功能,本来想用Struts来做文件上传下载,但是看了下公司好像没有这个配置,然后看了下同事的代码,才发现原来Apache也可以简单的实现文件上传下载. 首先引入commons-io-2.2.jar FileUtils为我们提供了很多对文件的操作的方法,比如上传整个文件夹的文件.上传单个文件等 然后请看代码下载: public static void uploadFile(String targetDirectory,String targetF

Java实现FTP上传下载功能

Java FTP客户端工具包很多,在此我选用的Apache的FTPClient.这个包的获取可以通过http://commons.apache.org/net/来获取,我使用的是最新的commons-net-1.4.1.zip.其中包含了众多的java网络编程的工具包,官方文档列举如下: 1.支持网络协议如下: FTP.NNTP. SMTP.POP3.Telnet.TFTP.Finger.Whois.rexec/rcmd/rlogin.Time (rdate) and Daytime.Echo.

Libcurl的初步实现tfp上传下载功能

该学习笔记的目标是利用libcurl实现ftp文件上传和下载功能 一.Libcurlde的简介 Libcurl是一个免费的并且易于使用的利用url进行文件传输的库., libcurl当前支持DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP,LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, Telnet and TFTP协议.libcurl同样支持HTTPS证书授