<body>
    <form id="form1" runat="server">
    <asp:ScriptManager ID="ScriptManager1" runat="server">
    </asp:ScriptManager>
    <div>
        <asp:UpdatePanel ID="UpdatePanel2" runat="server">
            <ContentTemplate>
                <div id="ycdiv" runat="server" style="color: Red; font-size: 20px;">
                    <asp:UpdateProgress ID="UpdateProgress1" runat="server">
                        <ProgressTemplate>
                            正在上视频请不要关闭或跳转网页,添加完会自动跳转</ProgressTemplate>
                    </asp:UpdateProgress>
                </div>
                 <div>
            <asp:FileUpload ID="FileUpload1" runat="server" />
            <br />
            <br />
            <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />
        </div>
            </ContentTemplate>
            <Triggers>
                <asp:AsyncPostBackTrigger ControlID="Button1" EventName="click" />
            </Triggers>
        </asp:UpdatePanel> 
    </div>
    </form>
</body>
后台代码:
 protected void Button1_Click(object sender, EventArgs e)
    {       
            //直接取得文件名
            string fullname = FileUpload1.FileName.ToString();
            //获取文件名字 . 后面的字符作为文件类型
            string typ2 = fullname.Substring(fullname.LastIndexOf(".") + 1);
           
            //获得文件的名称
            string typ3 = fullname.Substring(0, fullname.LastIndexOf("."));
            //上传文件的大小
            string size = FileUpload1.PostedFile.ContentLength.ToString();
            //下面是保存了,我们来个判断,只能上穿传哪些格式的文件吧
            if (typ2 == "flv")
            {
                //得到下拉列表框的值
                //添加成功              
                FileUpload1.SaveAs(Server.MapPath("~\\flv") + "\\" + fullname);//将文件保存在跟目录的uploads文件夹下
            }
        
    }问题:直接取得文件名fullname ="";取不到文件的名字,当去掉前台的无刷新控件UpdatePanel;fullname 就能正确的取到值而不是""空;只是为什么???

解决方案 »

  1.   


    <asp:AsyncPostBackTrigger ControlID="Button1" EventName="click" />
    ===
    <asp:AsyncPostBackTrigger ControlID="Button1" />
      

  2.   

    UpdatePanel和上传控件最好别一起用吧
      

  3.   

    你是把上传控件放在updatepanel里?
      

  4.   

    使用上传控件在ajax里做不到 。
    你是用ifream 或者flash实现无刷新上传效果。
    网上有很多无刷新上传
      

  5.   

    放弃用FileUpload获得路径的念头吧
    用js的话 浏览器不兼容的
    我也努力了很久 解决不了用jquery.MultiFile可以获得
      

  6.   

    fileupload不能放在updatepannel里否则得不到值
      

  7.   

    微软的updatePanel不支持上传控件把..
    <asp:UpdatePanel>
    <ContentTemplate>
    ....
    </ContentTemplate>
        <Triggers>
          <asp:PostBackTrigger ControlID="btnUpFile" />
        </Triggers>
        </asp:UpdatePanel>
    我这样用貌似没出问题,不过我的fullname是自动生成的
      

  8.   

    我用FileUpload这个控件都不加<asp:UpdatePanel><ContentTemplate>这个的,应该是不支持AJAX控件
      

  9.   

    可以考虑用其他的AJAX框架来异步上传文件,比如jquery,当然asp.net AJAX中也是有异步上传文件的控件的。
    jquery:http://kb.cnblogs.com/page/53693/           看看楼主
      

  10.   

    控件updatefile是不能放入updatepanel中的。
    放入后在后台就去不了值。
    有只用方法可以实现不刷新,且还能显示上传后的图片。这个得去借鉴jQuery。他最终的思想使用IFrame上传图片。这点lz上网去收收学学。