foreach (System.Web.UI.Control control in this.Controls)
        {
            if (control is FileUpload)
            {
                FileUpload upload = (FileUpload)control;
                if (upload.FileName != "")
                {
                  ………………………………
            }
       }
  为什么遍历不到fileupload控件,不能执行第一个if里的语句?
 而且 多次测试,control.getType().toString() 是system.web.ui.literalcontrol类型的,为什么呢,怎么才能是 system.web.ui.webcontrol类型的啊?
    

解决方案 »

  1.   

    通过HttpContext.Current.Request.Files来获取upload控件
      

  2.   

    用客户端html的那个上传控件然后这样遍历 #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
      

  3.   


    我用了多个服务器upload控件,并且生成相应缩略图和水印图片,代码部分太多,所以我还是想用原来的upload控件,
    但是遍历不到上传控件,我的上传控件是写在form里的一个table中,大概跟容器的引用层次有关,我改了测试后,还是
    不行。
      

  4.   

     for (int i = 1; i <= 6; i++)
            {
                FileUpload fu = (FileUpload)Page.FindControl("FileUpload" + i.ToString());
                if (fu.HasFile)
                {
           
                    if (fu.PostedFile.ContentType.ToLower().IndexOf("image") < 0)
                    {
                        comman.Alert("请上传图片文件");
                    }
                    //大图路径 
                    model.BigImage = ImageHelper.UploadPhoto(fu, "SpacePic/", 426, 0);                //小图路径
                    model.SmallImage = ImageHelper.UploadPhoto(fu, "SpacePic/", 148, 109);
                    model.AddDate = DateTime.Now;
                    bll.Add(model);
                }           
            }