天天看点

文件下载的几种方法

鍏堟妸鏈夐棶棰樼殑浠g爜璐村嚭鏉ュ惂,

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.IO;

namespace infoPlatClient.NetDisk
{
    public partial class downLoad : Com.DRPENG.Common.WebStruct.BaseForm
    {

        /// <summary>
        /// 鍙栧緱瑕佷笅杞芥枃浠剁殑璺緞
        /// </summary>
        private string fileRpath
        {
            get
            {
                return Request["fileRpath"] == null ? "" : Request["fileRpath"];
            }
        }
        /// <summary>
        /// 鍙栧緱瑕佷笅杞芥枃浠剁殑鍚嶇О
        /// </summary>
       
        protected void Page_Load(object sender, EventArgs e)
        {
                if (!IsPostBack)
                this.DownloadFile();
        }
        public void DownloadFile()
        {

                Response.ClearHeaders();
                Response.Clear();
                Response.Expires = 0;
                Response.Buffer =true;
                Response.AddHeader("Accept-Language", "zh-tw");
                string name = System.IO.Path.GetFileName(fileRpath);
                System.IO.FileStream files = new FileStream(fileRpath, FileMode.Open, FileAccess.Read, FileShare.Read);
                byte[] byteFile=null;
                if (files.Length == 0)
                {
                    byteFile=new byte[1];
                }
                else
                {
                    byteFile = new byte[files.Length];
                }
                files.Read(byteFile, 0, (int)byteFile.Length);
                files.Close();
             
                Response.AddHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(name, System.Text.Encoding.UTF8));
                Response.ContentType = "application/octet-stream;charset=gbk";
                Response.BinaryWrite(byteFile);
                Response.End();
              
        }
    }
}

 涔嬪墠涓€鐩寸敤杩欑涓嬭浇鏂瑰紡锛屽彲鏄湁涓€娆$敤鎴蜂笂浼犱簡涓€涓?00Mb鐨勬枃浠舵椂鎶ュ唴瀛樻孩鍑虹殑闂锛屽垎鏋愪簡涓€涓嬪師鍥狅紝鐢ㄦ埛鐨勫唴瀛樺彧鏈?56M锛岃€屼笅杞芥枃浠舵椂瑕佸垱寤哄唴瀛樻祦锛屽鑷翠簡鍐呭瓨婧㈠嚭銆?
瑙e喅鏂规:1>WriteFile鍒嗗潡涓嬭浇锛屽氨鏄瘡娆′笅杞芥寚瀹氭暟閲忕殑澶氫欢;

             2>閫氳繃瓒呴摼鎺ョ殑鏂瑰紡;

             lblDownLoad.Text = "<a href='" + drv["VPath"].ToString() + "'>涓嬭浇</a>"

涓嬮潰鏄洓绉嶅疄鐜版枃浠朵笅杞界殑鏂瑰紡:

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.IO;

public partial class _Default : System.Web.UI.Page 
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }

    //TransmitFile瀹炵幇涓嬭浇
    protected void Button1_Click(object sender, EventArgs e)
    {
        /*
         寰蒋涓篟esponse瀵硅薄鎻愪緵浜嗕竴涓柊鐨勬柟娉昑ransmitFile鏉ヨВ鍐充娇鐢≧esponse.BinaryWrite
         涓嬭浇瓒呰繃400mb鐨勬枃浠舵椂瀵艰嚧Aspnet_wp.exe杩涚▼鍥炴敹鑰屾棤娉曟垚鍔熶笅杞界殑闂銆?         浠g爜濡備笅锛?         */

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

    //WriteFile瀹炵幇涓嬭浇
    protected void Button2_Click(object sender, EventArgs e)
    {
        /*
         using System.IO;
         
         */

        string fileName ="asd.txt";//瀹㈡埛绔繚瀛樼殑鏂囦欢鍚?        string filePath=Server.MapPath("DownLoad/aaa.txt");//璺緞

        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.txt";//瀹㈡埛绔繚瀛樼殑鏂囦欢鍚?        string filePath = Server.MapPath("DownLoad/aaa.txt");//璺緞

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

        if (fileInfo.Exists == true)
        {
            const long ChunkSize = 102400;//100K 姣忔璇诲彇鏂囦欢锛屽彧璇诲彇100K锛岃繖鏍峰彲浠ョ紦瑙f湇鍔″櫒鐨勫帇鍔?            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.txt";//瀹㈡埛绔繚瀛樼殑鏂囦欢鍚?        string filePath = Server.MapPath("DownLoad/aaa.txt");//璺緞

        //浠ュ瓧绗︽祦鐨勫舰寮忎笅杞芥枃浠?        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();

    }
}

       

鏂囦欢涓嬭浇鐨勫嚑绉嶆柟娉?

聽娴忚鍣ㄤ繚瀛?

string name = "瀵规瘮璁㈠崟.xls";
            using (MemoryStream ms = new MemoryStream())
            {
                try
                {
                    wk.Write(ms);
                    HttpContext.Response.ContentType = "application/vnd.ms-excel";
                    HttpContext.Response.ContentEncoding = Encoding.UTF8;
                    HttpContext.Response.Charset = "";
                    HttpContext.Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(name, Encoding.UTF8));
                    HttpContext.Response.BinaryWrite(ms.GetBuffer());
                    HttpContext.Response.End();
                }
                catch
                {
                    HttpContext.Response.Write("false");
                }
            }      

View Code

杞浇浜?https://www.cnblogs.com/taidi/p/4093210.html

ui