Asp.net 下載文件(彈出對話框的形式)


下載文件的核心代碼:

        private void DownLoadDataFile()
        {
            try
            {
                string filePath = @"C:\lala.csv";   //the target file path
                FileInfo downloadFile = new FileInfo(filePath);
                if (downloadFile.Exists)
                {
                    Response.Clear();
                    Response.ClearHeaders();
                    Response.Buffer = false;
                    Response.ContentType = "application/octet-stream";
                    Response.AppendHeader("Content-Disposition", "attachement;filename=" + HttpUtility.UrlEncode(downloadFile.FullName, System.Text.Encoding.ASCII));
                    Response.AppendHeader("Content-Length", downloadFile.Length.ToString());
                    Response.WriteFile(downloadFile.FullName);
                    Response.Flush();
                    Response.End();
                }
                else
                { }
            }
            catch (Exception ex)
            { }
        }

也可以簡單的參考這些文章:

http://www.cnblogs.com/futao/archive/2009/12/29/1635236.html

http://www.cnblogs.com/weixing/archive/2012/02/27/2369567.html

 

然而對於SharePoint 中的WebPart 中的上下文環境中沒有 Response 這個對象,但是可以用 HttpContext.Current.Response 對象進行代替 詳情請看 http://social.technet.microsoft.com/Forums/zh-CN/mosses/thread/3d5f36bb-5c89-49c6-a15d-e30225d50d5e

實例代碼如下所示:

        private void DownLoadDataFile()
        {
            try
            {
                string filePath = @"C:\lala.csv";   //the target file path
                FileInfo downloadFile = new FileInfo(filePath);
                if (downloadFile.Exists)
                {
                    HttpContext.Current.Response.Clear();
                    HttpContext.Current.Response.ClearHeaders();
                    HttpContext.Current.Response.Buffer = false;
                    HttpContext.Current.Response.ContentType = "application/octet-stream";
                    HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachement;filename=" + HttpUtility.UrlEncode(downloadFile.FullName, System.Text.Encoding.ASCII));
                    HttpContext.Current.Response.AppendHeader("Content-Length", downloadFile.Length.ToString());
                    HttpContext.Current.Response.WriteFile(downloadFile.FullName);
                    HttpContext.Current.Response.Flush();
                    HttpContext.Current.Response.End();
                }
                else
                { }
            }
            catch (Exception ex)
            { }
        }

 

 。。。。。。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM