mojoportal中解决下载文件名乱码问题

  在shareFilesDownload.aspx文件添加如下方法:

 

private static string UTF_FileName(string filename)
        {
            return HttpUtility.UrlEncode(filename, System.Text.Encoding.UTF8);
        }


修改Downloadfiles方法():

 private void DownloadFile()
        {
            if (
                (CurrentPage != null)
                &&(sharedFile != null)
                )
            {
                string downloadPath = Page.Server.MapPath(WebUtils.GetApplicationRoot()
                    + "/Data/Sites/" + this.CurrentPage.SiteID.ToString() + "/SharedFiles/")
                    + sharedFile.ServerFileName;

                if (File.Exists(downloadPath))
                {
                    FileInfo fileInfo = new System.IO.FileInfo(downloadPath);
                    Page.Response.AppendHeader("Content-Length", fileInfo.Length.ToString());
                }

                string fileType = Path.GetExtension(sharedFile.FriendlyName).Replace(".", string.Empty).ToLowerInvariant();
               
                if (fileType == "pdf")
                {
                    //this will display the pdf right in the browser
                    Page.Response.AddHeader("Content-Disposition", "filename=" + UTF_FileName(sharedFile.FriendlyName));
                }
                else
                {
                    // other files just use file save dialog
                    Page.Response.AddHeader("Content-Disposition", "attachment; filename=" + UTF_FileName(sharedFile.FriendlyName));
                }

                //Page.Response.AddHeader("Content-Length", documentFile.DocumentImage.LongLength.ToString());

                Page.Response.ContentType = "application/" + fileType;
                Page.Response.Buffer = false;
                Page.Response.BufferOutput = false;
                Page.Response.TransmitFile(downloadPath);
                Page.Response.End();
            }

        }
 

posted on 2009-02-12 20:47  蓝蓝的天2016  阅读(342)  评论(0编辑  收藏  举报