溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

asp.net實現(xiàn)網(wǎng)站上傳下載功能的幾種方法

發(fā)布時間:2020-07-15 06:24:05 來源:網(wǎng)絡(luò) 閱讀:1024 作者:bigfool007139 欄目:編程語言

   能實現(xiàn)網(wǎng)站下載的功能語言都是動態(tài)語言,除了asp.net,還有php,jsp等,這里以asp.net為例。

  這種可以實現(xiàn)多種網(wǎng)站下載功能, 代碼如下:


 

//TransmitFile實現(xiàn)下載
    protected void Button1_Click(object sender, EventArgs e)
     {
       

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

    //WriteFile實現(xiàn)下載
    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", "p_w_upload;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,這樣可以緩解服務(wù)器的壓力
            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", "p_w_upload; 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", "p_w_upload;   filename=" + HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8));
         Response.BinaryWrite(bytes);
         Response.Flush();
         Response.End();

     }

完畢(end)

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI