您的位置:首页 > 其它

UpdatePanel内使用FileUpload上传…

2014-03-05 14:29 351 查看
今天遇到了一个这样的问题,在使用了UpdatePanel的模板页的内容页,我要使用Fileupload上传图片时,发现了
string file =
FileUpload1.PostedFile.FileName;这里FileName获取不到文件为Null,也就导致了后面的这个string
fileExtension =
Path.GetExtension(file);出现了,经常遇到的问题“未将对象引用设置到对象的实例”。出现这个问题后我很纳闷,第一次遇到Fileupload上传获取不到文件,我就一块一块的代码检查,看那里出问题了,最后发现问题在UpdatePanel上,网上查了一下UpdatePanel和Fileupload发现关于这个问题有很多,看了好几种解决办法都没能成功,最后功夫不负有心人,终于找到解决这个问题的方法了,废话不多说下面来看一下具体实现:

不要管模板页是咋么写的,就只看套用了模板页的内容页就ok,来一个截图:





这个截图我想大家可以看明白的,就这样使用一个的就把问题搞定了。至于后台的上传代码么,我就给大家一个粘贴到这里也供大家参考一下了,代码都有注释的。


#region 封面图上传


string uploadImage()


{


//1. 检查上传文件是否存在


string path = Server.MapPath("~/zazhi/bookFrame/");//文件路径


string temp = DateTime.Now.ToString("yyMMddHHmmss");//文件名


bool result = false;


//2.先判断文件夹是否存在,如果不存在则创建再上传,否则直接上传


if (!Directory.Exists(path))


{


Directory.CreateDirectory(path);


}


//3.判断文件类型(后缀名)和大小


string AllowType =
System.Configuration.ConfigurationManager.AppSettings["AllowType"].ToString();


int AllowSize =
Convert.ToInt32(System.Configuration.ConfigurationManager.AppSettings["AllowSize"].ToString())
* 1024;



//文件后缀名


string file = FileUpload1.PostedFile.FileName;


string fileExtension = Path.GetExtension(file);


foreach (string extension in AllowType.Split('|'))


{


//3.判断文件类型(后缀名)和大小


if (fileExtension.ToLower().Equals(extension))


{


if (FileUpload1.PostedFile.ContentLength <
AllowSize)


{


result = true;


}


else

Response.Write("<script>alert('上传的文件大小超过8MB');</script>");


}


}


//4.判断文件是否在服务器上存在。采用时间戳或Guid来标识唯一性


if (result)


{


FileUpload1.SaveAs(path + temp + fileExtension);//上传


lblMessage.Text = "当前上传文件成功!" +
FileUpload1.PostedFile.ContentType;



lblShow.Text
= "<img src='" + path + temp + fileExtension +
"'>";


}


else

Response.Write("<script>alert('上传的文件类型不符合要求!');</script>");


if (lblShow.Text !=
"")


return path + temp +
fileExtension;


else


return null;


}


protected void btnUpload_Click(object sender, EventArgs e)


{


uploadImage();//封面图上传


}


#endregion

这里说明一下:AllowType 和 AllowSize 参数

这个是在web.config中配置的,代码粘帖一下


<appSettings>


<add key="AllowType"
value=".jpg|.bmp|.png|.gif"/>


<add key="AllowSize"
value="800"/>


</appSettings>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: