上传文件控件(fileupload)在应用了ajax中页面中使用时无效
因为UpdatePanel从一开始就无法支持AJAX的文件上传方式。
解决方法:
添加Triggers控件
<Triggers>
<asp:PostBackTrigger ControlID="{您准备出发回传的那个控件ID值}(上传文件 的btn)" />
</Triggers>
加这段代码在UpdatePanel里面(但不要包含在ContentTemplate里)。
如果页面中存在多个updatePanel时,则将此控件在最近的UpdatePannel中添加。
上传文件的代码:
HttpPostedFile file = this.fuFile.PostedFile;
string acceptExt = ".xls|.xlsx";
if (file.ContentLength < 10)
{
MessageBox("请选择要上传的excle文件!");
return;
}
if (!acceptExt.Contains(Path.GetExtension(file.FileName)))
{
MessageBox("请选择图片文件上传,如:jpg,gif,bmp,png等!");
return;
}
string Names = "";
//if (_ID != "")
//{
// Names = _ID;
//}
//else
//{
// Session["ID"] = Guid.NewGuid();
// Names = Session["ID"].ToString();
//}
string newFileName = Names + Path.GetExtension(file.FileName);
string RootPath = FlowProvider.DefaultProvider.AttachmentFolder;
string floderPaht = Settings.ImageURL;
RootPath = RootPath + "\\" + floderPaht;
if (System.IO.Directory.Exists(RootPath) == false)
{
System.IO.Directory.CreateDirectory(RootPath);
}
file.SaveAs(RootPath + "\\" + newFileName);