您的位置:首页 > 其它

文件的上传、下载及删除方法

2012-12-05 09:21 399 查看
#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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: