用FileUpload上传文件,代码如下:         protected void Button1_Click(object sender, EventArgs e)
    {      
              
        string test = Server.MapPath("ImageFilesTemplate/" + DateTime.Now.ToString("yyyy-MM-dd"));  //用来生成文件夹
        if (!Directory.Exists(test))
        {
            Directory.CreateDirectory(test);
        }
        
        if (FileUpload1.PostedFile.FileName != "")
        {
            string imgname = FileUpload1.PostedFile.FileName;
            string imgType = imgname.Substring(imgname.LastIndexOf(".") + 1);
            string quanname = DateTime.Now.ToString("yyyyMMddHHmmss") + imgname.LastIndexOf("\\") + "." + imgType;
            imgurl = "ImageFilesTemplate/" + DateTime.Now.ToString("yyyy-MM-dd") + "/" + quanname;
            FileUpload1.PostedFile.SaveAs(Server.MapPath(imgurl));
        }         
     }   
HTML代码如下:
       <td align="left" style="width: 20%; height: 26px">
                                                                           <asp:FileUpload ID="FileUpload1" runat="server" /></td>
asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="上传" style="font-size: 12px; font-family: 华文中宋; background-color: #d0dbd0" />运行程序后,选中上传的文件点击Button1,就会提示"未将对象引用设置到对象实例",单步跟踪后发现FileUpload1.PostedFile.FileName出现的问题,各位高手请帮忙看看是什么原因?

解决方案 »

  1.   

    imgurl = "ImageFilesTemplate/" + DateTime.Now.ToString("yyyy-MM-dd") + "/" + quanname; 
    修改为
    string imgurl = "ImageFilesTemplate/" + DateTime.Now.ToString("yyyy-MM-dd") + "/" + quanname; 
      

  2.   

    眼拙,没发现有什么问题你是说     string imgname = FileUpload1.PostedFile.FileName; 这句抛异常?
      

  3.   

    不好意思,imgurl有定义,问题没有出在这句;当运行到if (FileUpload1.PostedFile.FileName != "")时,页面跳转出现“未将对象引用设置到对象实例”,请问是什么原因
      

  4.   

    要不换成FileUpload1.FileName试试,要不重装.NET
      

  5.   


    这里的FileUpload1.PostedFile.FileName不是这样用的,你可以创建FileInfo的实例来完成读取你的文件FileInfo f=FileInfo(FileUpload1.PostedFile.FileName);
    然后才来获取你的文件名和拓展名
    string name=f.Name;
    string type=f.Extension;
    然后再用Server.MapPath()定义保存的文件的路径,接着你保存你的文件,用SaveAs()
      

  6.   

    保存的时候直接用
    FileUp.SaveAs(this.MapPath(文件夹+文件名));
    就行了呀~~
      

  7.   

    运行到FileUpload1.PostedFile相关的语句都会显示上面的提示,例如:FileUpload1.PostedFile.ContemtLength等,
    在监视窗口中显示FileUpload1.PostedFile为null,为什么会出现这种情况?
      

  8.   

     将string imgname = FileUpload1.PostedFile.FileName; 换成
    string imgname = FileUpload1.FileName;
     再将FileUpload1.PostedFile.SaveAs(Server.MapPath(imgurl)); 换成
    FileUpload1.SaveAs(Server.MapPath(imgurl)); 
    就应该没有问题了!
      

  9.   

    应该先检查PostedFile是否是null,不是null后才取它的文件名
      

  10.   

    为什么选中了文件路径后PostedFile为null
      

  11.   

    其实你只要看一下FileUpload1.PostedFile.FileName 返回的是个什么就行了.他返回 为 object 你就先赋个null 字符串就赋个""就行.主要是你要找到问题根的所在
      

  12.   

                FileUpload fup = new FileUpload();
                if (fup.HasFile)
                { 
                    '判断有无文件,还需要判断文件大小是为零,还要判断扩展名是否正确,还要判断MIME类型是否正确..完..
                }
      

  13.   

    注意你的indexof('.')+1了
    那么也包含了 .jpg 或.gif 我的建议是 把你的 保存路径打出来看看
    你就会知道是什么问题了另外权限也有关系的