Asp.Net WebForm 图片上传及物理路径的得到

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lichunlin1994/article/details/53539023

【得到物理路径】

1.在类中获取物理路径:

System.Web.HttpContext.Current.Server.MapPath("");
[注意:要引用程序集System.Web]

2.在webform的Page_Load方法中获取如下: 
1)Request.MapPath() 
2)Server.MapPath();




【图片上传】
一、不用控件,在WebForm中实现
1.前台
注意:上传时<form>里面的enctype要改为:"multipart/form-data"
<form id="f1" method="post" action="Handler1.ashx" enctype="multipart/form-data">
	<input type="file" name="file1" />
	<input type="submit" value="上传" />
</form>

2.后台
生成新文件名:Guid.NewGuid().ToString()+"原始文件名";
#region 1.接收图片 和 保存图片
//1.0 验证是否有文件
HttpPostedFile uploadFile = null;
if (Request.Files.Count <= 0)
{
	js = "alert('请选择要上传的图片!')";
}
else
{
	//1.1 获取上传上来的 文件
	uploadFile = Request.Files[0];
	//1.2 验证是否有文件(因为有时 Request.Files.Count 属性验证不了)
	if (uploadFile.FileName == null || uploadFile.FileName == "")
	{
		js = "alert('请选择要上传的图片!')";
	}
	//1.3 验证是否是图片
	else if (!uploadFile.ContentType.Contains("image/"))
	{
		js = "alert('只能上传图片!')";
	}
	//1.4验证图片大小(不能 小于2KB或者大于4M)
	else if (uploadFile.ContentLength <= 2 || uploadFile.ContentLength > 4 * 1024 * 1024)
	{
		js = "alert('图片太小或太大(2KB~4M)!')";
	}
	else
	{
		//1.5 生成 新的图片名
		string strNewImgName = FileHelper.NewFileName(uploadFile.FileName);
		Picture = strNewImgName;//重新赋值
		//1.6 保存新图片
		uploadFile.SaveAs(Server.MapPath("/commodity/" + strNewImgName));
	}
} 
#endregion



二、用控件,在WebForm中实现
1.前台
<div>
	<asp:FileUpload ID="FileUpload1" runat="server" />
	<asp:Button ID="Button1" runat="server" Text="上传" OnClick="Button1_Click" />
</div>

2.后台
string fileName = FileUpload1.FileName;
string imgPath = "/image/" + fileName;
string path = Server.MapPath("") + imgPath;
FileUpload1.SaveAs(path);















阅读更多
换一批

没有更多推荐了,返回首页