【得到物理路径】
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);