文件的上传、下载及删除方法
#region 文件的上传、下载及删除 //文件的上传方法 if (fdAppImages.HasFile) { /***重命名文件,防止重复***/ string fn = Guid.NewGuid().ToString() + fdAppImages.FileName.Substring(fdAppImages.FileName.LastIndexOf(".")); // string fn = System.IO.Path.GetFileName(fdAppImages.PostedFile.FileName); int index = fn.LastIndexOf("."); string lastName = fn.Substring(index, fn.Length - index); if (lastName != ".jpg" && lastName != ".gif" && lastName != ".png") { Alert("只能上传jpg|gif|png的图片文件!"); return; } /***获取文件存放的虚拟路径***/ string imageUploadUrl = ConfigurationManager.AppSettings["PreviewImages"].ToString(); /***获取文件存放的物理路径***/ string imageUploadPath = Server.MapPath(imageUploadUrl); string imageUrl = imageUploadUrl + "/" + fn; /***判断文件是否已存在***/ if (!File.Exists(imageUploadPath)) { Directory.CreateDirectory(imageUploadPath); } imageUploadPath = Server.MapPath(imageUploadUrl) + "\\" + fn; /***将上载的文件内容保存到web服务器指定的路径***/ this.fdAppImages.SaveAs(imageUploadPath); }//删除文件方法(存放文件对应的物理路径)string path = string.Empty; FileInfo fi = null; string[] arr = strStr.ToString().Split(','); foreach (string item in arr) { path = Page.Server.MapPath(item); fi = new FileInfo(path); /***判断文件是否已存在***/ if (fi.Exists) { fi.Delete(); } }//文件的下载方法 protected void dataRepeater_ItemDataBound(object sender, RepeaterItemEventArgs e) { HyperLink hlDownLoad = e.Item.FindControl("hlDownLoad") as HyperLink; if (string.IsNullOrEmpty((e.Item.DataItem as DataRowView)["ApkUrl"].ToString())) { hlDownLoad.Visible = false; } else { hlDownLoad.NavigateUrl = GetWebSourcePath((e.Item.DataItem as DataRowView)["ApkUrl"].ToString()); } } /// <summary> /// 获取资源相对路径对应的网络绝对地址 /// </summary> /// <param name="url">资源的相对路径</param> /// <returns>网络绝对地址</returns> protected string GetWebSourcePath(string url) { return GetSiteRootURL() + url.Replace("~", ""); } /// <summary> /// 取得网站的根目录的URL,包括虚拟目录 /// </summary> /// <returns>如:https://www.189.cn/web </returns> protected string GetSiteRootURL() { string siteRootUrl = string.Empty; HttpContext httpCurrent = HttpContext.Current; HttpRequest httpRe; if (httpCurrent != null) { httpRe = httpCurrent.Request; string urlAuthority = httpRe.Url.GetLeftPart(UriPartial.Authority); if (httpRe.ApplicationPath == null || httpRe.ApplicationPath == "/")//如果是在web站点 { siteRootUrl = urlAuthority; } else//如果是在web站点的虚拟子目录下 { siteRootUrl = urlAuthority + httpRe.ApplicationPath; } } return siteRootUrl; }#endregion