string fileName1 = this.FileUploadAddrPic.FileName;
 FileUploadAddrPic.SaveAs(Server.MapPath("~\\Prod_Images") + "\\" + fileName1);
 hotel.HotelAddressImage = "~\\Prod_Images" + "\\" + fileName1;
   
为什么fileName1一直为空,之前测试通过,现在就是报错。
因为fileName为空,所以下面的SaveAs一直找不到文件!
帮忙,B/S学的少。

解决方案 »

  1.   

    跟我前二天一样,file_name = upimg1.PostedFile.FileName.Substring(upimg1.PostedFile.FileName.LastIndexOf("\") + 1)--------------------------下面这句就不行
    file_time = DateTime.Now.Year.ToString + DateTime.Now.Month.ToString + DateTime.Now.Day.ToString + DateTime.Now.Hour.ToString + DateTime.Now.Minute.ToString + DateTime.Now.Second.ToString + DateTime.Now.Millisecond.ToString()
      

  2.   

    你的FileUpload控件是不是动态生成的呢?
      

  3.   

    string fileName1 = this.FileUploadAddrPic.FileName;
    以上只是取得特定的文件名,应该这样子来:
    string fileName1 = this.FileUploadAddrPic.FileName.ToString();//取得特定文件名
    FileInfo f_into = new FileInfo(fileName1);//取得文件信息
    string f_name = f_into.Name.ToString();//取得文件名;
    FileUploadAddrPic.SaveAs(Server.MapPath("~\\Prod_Images") + "\\" + f_name);
     hotel.HotelAddressImage = "~\\Prod_Images" + "\\" + f_name;
      

  4.   


    其中fileName1=this.FileUploadAddrPic.FileName.ToString();//取得特定文件名FileInfo 
    修改为fileName1=this.FileUploadAddrPic.PostedFile.FileName.ToString();//取得特定文件名FileInfo 
      

  5.   


     protected void Button1_Click(object sender, EventArgs e)
        {
            H_Hotel hotel = new H_Hotel();
            hotel.HotelSN = txtHotelSN.Text.ToString().Trim();
            hotel.HotelName = txtHotelName.Text.ToString().Trim();
            hotel.HotelAddress = txtHotelAddr.Text.ToString().Trim();
            hotel.HotelIntroduce = txtHotelIntr.Text.ToString().Trim();
            hotel.IsRecommend = Convert.ToInt32(txtRecommend.Text.ToString().Trim());
            hotel.AvePrice = txtPrice.Text.ToString().Trim();
            hotel.MemberTel = txtMemeberNumber.Text.ToString().Trim();        string fileName1 = this.FileUploadAddrPic.PostedFile .FileName.ToString();
           //跟踪这里的fileName1 为空!
            FileUploadAddrPic.SaveAs(Server.MapPath("~\\Prod_Images") + "\\" + fileName1);
            hotel.HotelAddressImage = "~\\Prod_Images" + "\\" + fileName1;        string fileName2 = this.FileUploadHotelPic.FileName.ToString();
            FileUploadHotelPic.SaveAs(Server.MapPath ("~\\Prod_Images") + "\\" + fileName2);
            hotel.HotelPicture = "~\\Prod_Images" + "\\" + fileName2;
            IUDMethed iud = new IUDMethed();
            if (type == "1")
            {
                iud.AddHotel(hotel);
            }
            else
            {
                iud.UpdateHotel(hotel);
            }
        }
      

  6.   

    string fileName1 = this.FileUploadAddrPic.FileName;
    可以吗?
    你是不是在aspx里使用js处理过了?
      

  7.   

    初始化FileUploadAddrPic时是不是没有this.IsPostBack。
      

  8.   


    string fileName1 = this.FileUploadAddrPic.PostedFile .FileName.ToString();
    string fileName1 = this.FileUploadAddrPic.FileName.ToString();
    string fileName1 = this.FileUploadAddrPic.FileName;以上三中方式现在都不行,
    我很奇怪,为什么之前可以,现在突然就出现这样的问题呢?
      

  9.   


    <asp:FileUpload ID="FileUploadHotelPic" runat="server" /></td>
      

  10.   

    检查下是不是FileUpload 控件嵌套了别的控件里面了?或者是没有放在<form runat=server>里面?另外,form是不能嵌套的。看看你的浏览器的html代码有几个form.ToString();
    多此一举,FileName本身就是String类型了。
      

  11.   

    楼主,我把你的代码测试过了,没什么问题。你往服务器设置及配置文件方面想一想:
    一:iis中是否允许你上传你的文件类型;
    二:.net默认上传不超过4M的文件。
      

  12.   

    没注意看你的问题,
    是因为fileName为空,所以下面的SaveAs一直找不到文件!可能是编译器出错了也说不定,重启一下电脑。呵呵
    我丢人了,闪了。
      

  13.   

    1. 你应该首先判断 FileUpload 是否为空
       if(!this.FileUploadAddrPic.HasFile){}
    2. 取得上传文件名称直接 使用 string fileName1 = this.FileUploadAddrPic.FileName;
       就可以
    3. 发一个成功使用的图片上传例子你参考一下
               //上传营业执照
            <asp:FileUpload ID="imgfile" runat="server" />
            protected void Button3_Click(object sender, EventArgs e)
            {
                if (!imgfile.HasFile)//是否上传图片
                {
                    isUploadImg=false;
                    Response.Write(string.Format(JsHelper.WINALERTSCRIPT, "请上传图片")); 
                    //Response.Write("<script>alert('请上传图片')</script>");
                    //RegisterStartupScript("", "<script language=\"javascript\">window.alert('请上传图片!')</script>");
                }
                else 
                {
                    //图片格式限制 bmp/jpg/gif
                    if (this.imgfile.PostedFile.ContentType == "image/bmp" || this.imgfile.PostedFile.ContentType == "image/jpg" || this.imgfile.PostedFile.ContentType == "image/gif" || this.imgfile.PostedFile.ContentType == "image/pjpeg")
                    {
                        //图片大小限制小于3MB
                        if (this.imgfile.PostedFile.ContentLength > 1024 * 3072)
                        {
                            Response.Write(string.Format(JsHelper.WINALERTSCRIPT, "上传图片太大,图片大小应小于3MB"));
                        }
                        else 
                        {
                            //Response.Write(string.Format(JsHelper.WINALERTSCRIPT, "文件路径" + this.imgfile.PostedFile.FileName + "图片类型" + this.imgfile.PostedFile.ContentType + "图片大小" + this.imgfile.PostedFile.ContentLength));
                            string path = Server.MapPath("~/Superdisplay/zhengshu/");
                            string filePath = path + this.imgfile.FileName;                        //判断图片是否存在
                            FileInfo nowfile = new FileInfo(filePath);
                            if (nowfile.Exists)
                            {
                                Response.Write(string.Format(JsHelper.WINALERTSCRIPT, "图片已经存在,请换张图片,或修改该图片名称"));
                                this.imgShow.Visible = false;
                            }
                            else 
                            {
                                try
                                {
                                    this.imgfile.SaveAs(path + this.imgfile.FileName);
                                    Response.Write(string.Format(JsHelper.WINALERTSCRIPT, "上传营业执照图片成功"));
                                    ViewState["sellCard"] = "~/Superdisplay/zhengshu/" + imgfile.FileName;
                                    this.imgShow.Visible = true;
                                    this.imgShow.ImageUrl = "~/Superdisplay/zhengshu/" + imgfile.FileName;
                                }
                                catch (Exception ex) 
                                {
                                    Response.Write(string.Format(JsHelper.WINALERTSCRIPT, "图片上传失败,请重新上传"));
                                }                        }
                            
                        }
                    }
                    else 
                    {
                        Response.Write(string.Format(JsHelper.WINALERTSCRIPT, "图片格式只能为bmp或jpg或gif"));
                    }
                }
      

  14.   

    可以判断下有没有获得FileUpload里的文件。用if(FileUpLoad.hasFile)
      

  15.   

    我想问下你是不是放在updatepanel里面了,他们两个微软做的不兼容,具体要实现无刷新,应该用ifreame实现,还有其他办法,具体google下
     
      

  16.   

    页面是不是加了Ajax控件“updatapanl”,加了取不到了
      

  17.   

    可以判断下有没有获得FileUpload里的文件。 用if(FileUpLoad.hasFile) 
      

  18.   

    学习一下,看一下Post_Load()中的一些东西吧。可能会清空值。我以前遇到过。