sharepoint 中用自帶的download.aspx實現文件的下載,中文文件名編碼的問題

 
 
//下面代碼中的主要是爲了將數據綁定到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);

                    }

                }
            }但願對您有所幫助!
相關文章
相關標籤/搜索