fileupload控件未被实例化

Robinfu2013 2009-04-21 06:17:05
求教各位大侠, 开门见山了
最近在走一个图片上传的功能
用的是vs2005 ,控件用的是fileupload控件。问题是,我把fileupload控件(五个图片上传,分别是1~5)放入了updatepanel里面。
不知为什么莫名其妙,页面第一次加载就抛出控件未被实例化异常fileupload的。异常后弹出对话框,然后再提交一次就可以正常运转了...十分不理解...

=========================================代码=================================================

if (this.DDLPinPai4.Visible != false && this.DDLProType3.Visible != false)
{
try
{
int a = Convert.ToInt32(this.DDLuploadfile.SelectedValue);
int b = a;
string fileupname = "FileUpImg";
FileUpload cc = null;
for (; a > 0; a--)
{
cc = (FileUpload)this.FindControl(fileupname + a.ToString()) as FileUpload;
cc.DataBind();
if (cc.PostedFile.FileName.ToString() == "")
{
Response.Write("<script>alert(\"上传路径不能为空!\");</script>");
return;
}
}


string Straddpro = "insert into ProLvMax values('" + this.TextBox1.Text + "'," + this.TextBox3.Text + ",'" + this.TextBox4.Text + "'," +
this.RBnewproduct.SelectedValue + "," + this.RBRemen.SelectedValue + "," + proLastId + ",'" + this.TextBox5.Text + "'," + this.TextBox7.Text + ",'" +
this.TextBox6.Text + "'," + this.RBdel.SelectedValue + ",0,0,'" + this.TextBox2.Text + "'," + PinPaiLastId + ") select @@identity";
re = ProAddConn.ReInRows(Straddpro);
if (re != 0)
{
for (; b > 0; b--)
{
cc = (FileUpload)this.FindControl(fileupname + b.ToString()) as FileUpload;
int rd = dm.Next(100000);
string filename = cc.PostedFile.FileName.Substring(cc.PostedFile.FileName.LastIndexOf("\\") + 1);
string houzhui = cc.PostedFile.FileName.Substring(cc.PostedFile.FileName.LastIndexOf(".") + 1);
if (houzhui == "gif" || houzhui == "jpg" || houzhui == "bmp")
{
cc.PostedFile.SaveAs(Server.MapPath("../pic/" + rd + DateTime.Now.Year + PinPaiLastId + proLastId + "." + houzhui));
string StrAddPicPath = "insert into product_pic values(" + re + ",'" + rd + DateTime.Now.Year + PinPaiLastId + proLastId + "." + houzhui + "',100)";
ProAddConn.Excetu(StrAddPicPath);
}
else
{
Response.Write("<script>alert(\"上传文件必须是gif,jpg,bmp格式!\");</script>");
return;
}
}
Response.Write("<script>alert('提交产品成功!');</script>");
}


}
catch (Exception ex)
{

Response.Write("<script>alert('提交数据错误!');</script>");
}
}
else
{
Response.Write("<script>alert('请详细选择!');</script>");
}
============================================================================================
每次走到红色就一场,然后跳蓝色,再提交一次,就OK 了~~
我就纳闷了...难道说updatepanel里面第一次不能加载控件?提交服务器后加载了再传回来的?(纯属瞎猜想)
我很菜,希望大侠们帮帮忙,顺便评价一下我写的代码是不是很幼稚....野路子..没正规的大哥带..现在在北京也是小公司瞎混,招java web 的要求学历那么高.哎~ 只能先做.net了...帮顶也给分!谢谢各位哥们了~~
...全文
196 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Robinfu2013 2009-04-22
  • 打赏
  • 举报
回复
谢谢各位~!
首先感谢3楼给的最正解.我的琢磨研究一会了。其实我也是懒人,别的方法也能绕过这个问题,但是我不喜欢做程序老是代码拷代码。弄点新东西有意思O(∩_∩)O~(给60分)
其次感谢6楼的哥们,6楼的哥们遍历上传,不错。我的那个也是遍历上传图片...做的感觉不如你好。就是你这句比较好HttpFileCollection files = HttpContext.Current.Request.Files;能解释一下HttpContext.Current.Request.Files就更好了谢谢。我的方法比较笨.(20分)
1楼哥们给连接贴,我看了不是我想要的问题答案。不过还是谢谢,问题类似。(5分)

回2楼哥们,我这个页面第一次不能正常工作,但是提交一次就可以正常工作了...我就怀疑updatepanel初始化的时候不实例化控件.. 不过还是谢谢你(5分)

5楼不知道小妹妹你说的是啥意思,但是我说过帮顶就给分。谢谢(5分)

7楼 (5分)
hmily821023 2009-04-21
  • 打赏
  • 举报
回复
关注
llsen 2009-04-21
  • 打赏
  • 举报
回复
给你个上传多个文件的方法
 #region 上传文件
/// <summary>
/// 上传文件
/// </summary>
/// <returns></returns>
private ArrayList SaveFiles()
{
ArrayList fileArray = new ArrayList();

///'遍历File表单元素
HttpFileCollection files = HttpContext.Current.Request.Files;

try
{
for (int iFile = 0; iFile < files.Count; iFile++)
{
///'检查文件扩展名字
HttpPostedFile postedFile = files[iFile];
string fileName, fileExtension;
fileName = System.IO.Path.GetFileName(postedFile.FileName);
if (fileName != "")
{
fileExtension = System.IO.Path.GetExtension(fileName);
fileName = DateTime.Now.ToString("yyyyMMddHHmmss") + iFile.ToString() + fileExtension;

///'可根据扩展名字的不同保存到不同的文件夹
///注意:可能要修改你的文件夹的匿名写入权限。
postedFile.SaveAs(System.Web.HttpContext.Current.Request.MapPath("file/") + fileName);

fileArray.Add(System.Web.HttpContext.Current.Request.MapPath("file/") + fileName);
}
}

for (int i = fileArray.Count + 1; i <= 5; i++)
{
fileArray.Add("");
}

return fileArray;
}
catch
{
throw new Exception("BIG");
}
}
#endregion
happy664618843 2009-04-21
  • 打赏
  • 举报
回复
(FileUpload)panel1.findcontrol("FileUpload1")
iqmfqv 2009-04-21
  • 打赏
  • 举报
回复
想拥有一个非常稳定、速度又快、全自助双线主机吗?
还在犹豫什么,互通数据是你最好的选择。

详情请访问:http://www.515dns.com
QQ:287895593
wuyq11 2009-04-21
  • 打赏
  • 举报
回复
风骑士之怒 2009-04-21
  • 打赏
  • 举报
回复
updatepanel里面fileupload,fileupload是不会正常工作的,可以利用frame,模拟局部刷新

62,268

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧