首页 > Web开发 > 详细

sharepoint 中用自带的download.aspx实现文件的下载,中文文件名编码的问题

时间:2015-11-17 16:53:04      阅读:350      评论:0      收藏:0      [点我收藏+]

//下面代码中的主要是为了将数据绑定到repeater上,同时实现文件的下载,其中dr[3]中的路径绑定的是下载路径,用到了sharepoint中自带的download.aspx下载页面,只要将文件的URL赋值给sourceurl即可,但是我前台用的是<a>标签的href来导向下载页面的,如果你的文件名是中文命名,而且路径是在后台传的值,在前台的进行的链接,那么如果你用的是IE浏览器,那么下载时就无法成功,因为IE无法将路径进行编码,下载页面无法识别中文名,所以这时就必须先编码再链接,如下面的带有下滑线的代码,就是编码的过程。

if (files != null)
            {
                foreach (SPFile file in files)
                {
                    DataRow dr = dt.NewRow();
                    if (file.Item["IsShow"].ToString() == "True"&&file.Item["_ModerationStatus"].ToString() == "0")
                    {


                        dr[0] = "_layouts/images/" + file.IconUrl;
                        dr[1] = file.Name;
                        dr[2] = BussinessUtil.getDownloadType(file);
                        string fileUrl = file.Url;
                        string sourceUrl = fileUrl.Substring(0, fileUrl.LastIndexOf("/")+1) + HttpUtility.UrlEncode(fileUrl.Substring(fileUrl.LastIndexOf("/") + 1));//主要是对中文路径编码
                        dr[3] = SPContext.Current.Web.Url + "/_layouts/15/download.aspx?sourceurl=" + sourceUrl;
                        dr[4] = file.TimeCreated.ToShortDateString();
                        dr[5] = file.UniqueId;
                        dt.Rows.Add(dr);

                    }

                }
            }

希望对您有所帮助!

sharepoint 中用自带的download.aspx实现文件的下载,中文文件名编码的问题

原文:http://www.cnblogs.com/lzqs/p/3506151.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!