程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> 解決文件下載彈出窗體被攔截

解決文件下載彈出窗體被攔截

編輯:.NET實例教程


原來我們項目在開發時中(文件是存儲在數據庫中)下載文件采用寫入http頭的形式。如下 Response.Clear();
Response.Buffer = false;
Response.AppendHeader("Content-Disposition","attachment;filename="+HttpUtility.UrlEncode(fileWJNR.Rows[0]["WJM"].ToString(),System.Text.Encoding.UTF8));
Response.BinaryWrite(字節流);
Response.End();

        但在項目部署後,用戶的IE6.0浏覽時,會被攔截,並關閉退出。當時同事用了彈出一個窗體,再在彈出的窗體中再“點擊下載”,這樣就不會被攔截。
        我試了一個更直接的解決方法,就是點擊時,先生成臨時文件,再鏈接至臨時文件,即彈出文件下載或打開對話框。代碼很簡單:

    string fileName =  "文件名"               //用文件id
    string tempFilePath = Request.PhysicalPath;
    tempFilePath = tempFilePath.Substring(0,tempFilePath.LastIndexOf("\\"));
    tempFilePath += "\\temp\\" + fileName;
    FileStream file = new FileStream(tempFilePath,FileMode.OpenOrCreate,FileAccess.ReadWrite);

    try
    {
    
     byte[] docBody =  (byte[])fileWJNR.Rows[0]["WJNR"];          //轉換
     file.Write(docBody, 0, docBody.Length);
     file.Close();
     Response.Redirect("temp\\" + fileName);
    }
    catch
    {
        file.Close();
    }


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved