现在的位置: 首页 > 综合 > 正文

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

2013年06月16日 ⁄ 综合 ⁄ 共 1771字 ⁄ 字号 评论关闭

  在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();
            }

        }
 

抱歉!评论已关闭.