比如说我要写注册一个页面,填写信息里面有上传照片的,如果我放一个保存按钮。我想把信息全部填写后,先点击保存按钮把图片保存到指定文件夹,然后点击提交把信息提交到数据库,图片在数据库中保存为保存后的路径,但是如果我先点击保存我填写的信息就会清空,所以我想把img控件、FileUpload控件和保存按钮放在Ajax中那个UpdatePanel控件里面,但这样点击保存按钮执行就不能通过,不知道怎么回事,麻烦那位帮一下忙。下面是我保存按钮的事件代码: protected void btnSave_Click(object sender, EventArgs e) //设置保存图片时的图片名 //拼接要保存的路径 img1.ImageUrl = "images/" + fileName;
{
string fileName = "";
string road = "";
string path = "";
fileName = DateTime.Now.ToString("yyMMddtthhmm") + DateTime.Now.Millisecond.ToString();
//获得扩展名
string name = fuPhoto.PostedFile.FileName;
int n = name.IndexOf('.');
string nam = name.Substring(n, 4);
string allowName = ".jpg|.jepg|.gif";
//限制上传格式
if (allowName.IndexOf(nam.ToLower()) == -1)
{
Page.ClientScript.RegisterClientScriptBlock(typeof(string), "Field", "alert('只能上传" + allowName + "等格式的图片!')", true);
return;
}
fileName += nam;
//获取要保存文件的路径
road = Server.MapPath("~\\images");
path = road + "\\" + fileName;
fuPhoto.PostedFile.SaveAs(path);
}
FileUpload比较特殊,Ajax是不能直接传递文件的。
ASP.NET AJAX UpdatePanl和FileUpload控件不兼容