Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# FileUpload.HasFile始终为空_C#_Asp.net_File Upload_Updatepanel - Fatal编程技术网

C# FileUpload.HasFile始终为空

C# FileUpload.HasFile始终为空,c#,asp.net,file-upload,updatepanel,C#,Asp.net,File Upload,Updatepanel,我想知道为什么我的方法FileUpload.HasFile总是空的 这是我使用的Xaml <asp:ScriptManager ID="ScriptManager1" runat="server"> </asp:ScriptManager> <asp:UpdatePanel ID="UpdatePanelAddFiles" runat="server" UpdateMode=Conditional> <Triggers&g

我想知道为什么我的方法FileUpload.HasFile总是空的

这是我使用的Xaml

<asp:ScriptManager ID="ScriptManager1" runat="server">
    </asp:ScriptManager>
    <asp:UpdatePanel ID="UpdatePanelAddFiles" runat="server" UpdateMode=Conditional>
        <Triggers>
           <asp:AsyncPostBackTrigger ControlID="LkUpload" />
        </Triggers>
        <ContentTemplate>
        </ContentTemplate>
    </asp:UpdatePanel>
    <asp:Panel ID="PanelAddFiles" runat="server">
        <div class="PanelAddFiles">
            <asp:LinkButton ID="LkUpload" runat="server" OnClick="LkUpload_Click" Visible="false">Upload</asp:LinkButton>
            <asp:FileUpload ID="FileUpload1" runat="server" Visible="false" />
        </div>
    </asp:Panel>

上传
编辑:

我想其中一个问题就是这个

    <form action="Upload/Default.aspx" enctype="multipart/form-data" method="post" id="frm">
    <asp:ScriptManager ID="ScriptManager1" runat="server">
    </asp:ScriptManager>
    <asp:UpdatePanel ID="UpdatePanelAddFiles" runat="server" UpdateMode=Conditional>
        <Triggers>
           <asp:AsyncPostBackTrigger ControlID="LkUpload" />
        </Triggers>
        <ContentTemplate>
        </ContentTemplate>
    </asp:UpdatePanel>
    <asp:Panel ID="PanelAddFiles" runat="server">
        <div class="PanelAddFiles">
            <asp:LinkButton ID="LkUpload" runat="server" OnClick="LkUpload_Click" Visible="false">Upload</asp:LinkButton>
            <!--<asp:FileUpload ID="FileUpload1" runat="server" Visible="false" />-->
            <ajaxToolkit:AsyncFileUpload runat="server" ID="FileUpload1" />
            <asp:Panel ID="Dropbox" runat="server">
                <div class="dropbox">
                    <div class="dragzone">
                    </div>
                    <span class="message">
                drop files here to upload
            </asp:Panel>
        </div>
    </asp:Panel>
    </form>
</div>

上传
把文件放在这里上传
因为这是页面的形式,也是我在这里使用的形式。我有一个dropbox,无论它是IE还是非IE,我都会显示出来。所以当它是IE时,我只显示文件上传。 也许是因为有两种形式它不再发射了


我应该明确使用这个AjaxToolkit吗

文件上载在UpdatePanel中不起作用。您必须使用ASPNET AJAX控件工具包中的


使用AsyncFileUpload时,必须在页面或母版页中的表单标记中设置正确的参数:

<form id="form1" runat="server" enctype="multipart/form-data" method="post">

如果未设置正确的加密类型和方法,则UploadedComplete将永远不会启动,并且您将无法获取FileUpload.FileBytes,因为FileUpload.HasFile仅在UploadedComplete执行期间返回true



此外,AsyncFileUpload的早期版本在Chrome上不起作用。实际版本解决了问题。

文件上载在UpdatePanel中不起作用。您必须使用ASPNET AJAX控件工具包中的


使用AsyncFileUpload时,必须在页面或母版页中的表单标记中设置正确的参数:

<form id="form1" runat="server" enctype="multipart/form-data" method="post">

如果未设置正确的加密类型和方法,则UploadedComplete将永远不会启动,并且您将无法获取FileUpload.FileBytes,因为FileUpload.HasFile仅在UploadedComplete执行期间返回true


此外,AsyncFileUpload的早期版本在Chrome上不起作用。实际版本解决了问题。

使用以下代码:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="futest.aspx.cs" Inherits="erpweb.futest" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <asp:ScriptManager ID="smTest" runat="server"></asp:ScriptManager>
    <asp:UpdatePanel ID="upTest" runat="server">
        <ContentTemplate>
            <ajaxToolkit:AsyncFileUpload ID="AsyncFileUpload1" runat="server" 
                onuploadedcomplete="AsyncFileUpload1_UploadedComplete" />
        </ContentTemplate>
    </asp:UpdatePanel>

    </div>
    </form>
</body>
</html>
使用以下代码:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="futest.aspx.cs" Inherits="erpweb.futest" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <asp:ScriptManager ID="smTest" runat="server"></asp:ScriptManager>
    <asp:UpdatePanel ID="upTest" runat="server">
        <ContentTemplate>
            <ajaxToolkit:AsyncFileUpload ID="AsyncFileUpload1" runat="server" 
                onuploadedcomplete="AsyncFileUpload1_UploadedComplete" />
        </ContentTemplate>
    </asp:UpdatePanel>

    </div>
    </form>
</body>
</html>

删除
asp:FileUpload
control的
Visible=“false”
删除
asp:FileUpload
control的
Visible=“false”
是否有其他方法在不使用此更新面板及其工作的情况下使用FileUpload?FileUpload必须放在updatepanel之外:它需要页面的完整回发。没有更新面板FileUpload Works当我没有更新面板并且只是上传时,FileUpload仍然始终为空。那么有没有其他方法可以在没有更新面板及其工作的情况下使用FileUpload?FileUpload必须放在updatepanel之外:它需要完整的页面回发。如果没有更新面板文件上载工作,则当我没有更新面板且仅上载文件上载时,文件上载始终为空