2014-06-23图片上传处理
1. 将字符串转换为Guid的形式
System.Guid categoryId = newGuid(context.Request["CategoryId"]);//将字符串转换为Guid的形式
2.定义DataRow
/*----------------------定义DataRow并赋值-------------------------*/
DataTable dt = newDataTable();
dt.Columns.Add(newDataColumn("Id", typeof(Guid)));
dt.Columns.Add(newDataColumn("Name", typeof(string)));
dt.Columns.Add(newDataColumn("ImagePath", typeof(string)));
dt.Columns.Add(newDataColumn("CategoryId", typeof(Guid)));
dt.Columns.Add(newDataColumn("Msg", typeof(string)));
DataRow dr;
dr = dt.NewRow();
dr["Name"] = name;
dr["ImagePath"] = "/uploadfile/" + filename;
dr["CategoryId"] = categoryId;
dr["Msg"] = msg;
dr["Id"] = id;
dt.Rows.Add(dr);
/*--------------------------------------------------------------------*/
3.产品的图片上传
客户端浏览器,将图片传递到服务器,服务器不能主动来读客户端的数据
怎样提交客户端提交上来的图片
/*------------------------图片的上传处理-------------------------------------------*/
//要设定enctype="multipart/form-data"
HttpPostedFile productImg = context.Request.Files["ProductImage"];//获得浏览器上传的文件信息
//productImg.SaveAs("d:/");//图片要保存到项目的文件夹(子文件夹)下,才可以通过web来访问图片
//为了不把路径写死,方便移植采用下面方法
string filename =
DateTime.Now.ToString("yyyyMMddHHmmssfffffff") + Path.GetExtension(productImg.FileName);//有bug的,一毫秒内多个人上传多个文件
productImg.SaveAs(context.Server.MapPath("~/UI/uploadfile/" + filename));//文件保存路径//得到当前时间的年月日小时分秒毫秒格式
//productImg.SaveAs("");//图片要保存到项目的文件夹或者子文件夹下(服务器硬盘上),才可以通过web来访问图片
//不能将图片保存路径写死,如果项目移植操作不便
//mappath可以把一个相对于网站根目录的文件或者文件夹的路径转换为在服务器磁盘上的物理全路径
//获得浏览器上传的文件信息(input type="file" 上传上来的信息)
//产品描述
/*------------------------图片的上传处理完成-------------------------------------------*/
<formmethod="post"action="../Admin/ProductEdit.ashx"enctype="multipart/form-data">
enctype="multipart/form-data"→如果表单中有input type=file,那么method=post,并且一定要设定enctype="multipart/form-data"
否则在服务器端无法获取图片