FileUpload HasFile returns false

本文关键字:false returns HasFile FileUpload | 更新日期: 2023-09-27 17:54:28

我知道这个问题很常见,但在我的情况下,我涉及一个javascript,所以这可能是问题。这是我正在做的。我调用asp FileUpload来允许用户选择图像。然后通过调用onchange事件,我触发了一个javascript,它反过来使一个隐藏的div变得可见。div包含一个Confirm按钮,该按钮随后触发上传函数:

<div class="profile-page-owner-profile-pic">
       <asp:FileUpload ID="profile_pic_input" onchange="profilenewimageinput(this)" runat="server"></asp:FileUpload>
</div>

隐藏的Div:

<div id="profile-change-profile-pic-bg-overlay-div">
     <div class="profile-change-profile-pic-bottom-bar"> 
          <asp:Button ID="picApply" class="cropButton" runat="server" OnClick="picApply_Click" Text="Button" />
          <span class="profile-page-cancel-crop-button" onclick="hideprofilepicwindow()">Cancel</span> 
      </div>
</div>

JS:

function profilenewimageinput() {
    document.getElementById("profile-change-profile-pic-bg-overlay-div").style.display = "block";
    setTimeout(function () {
        document.getElementById("profile-change-profile-pic-bg-overlay-div").style.opacity = 1;
    }, 100);
}

背后的代码:

protected void picApply_Click(object sender, EventArgs e)
{
     if (profile_pic_input.HasFile) //always returns false when debugged
     {
          //Code
     }
}

为什么我的HasFile总是返回False甚至当一个图像被选中?

FileUpload HasFile returns false

尝试将其放在具有适当Trigger设置的<asp:UpdatePanel>中。下面的代码可以工作,但我不在测试的地方:

<div class="profile-page-owner-profile-pic">
    <asp:UpdatePanel ID="UploadPanel" runat="server">
        <Triggers>
            <asp:PostBackTrigger ControlID="picApply" />
        </Triggers>
        <ContentTemplate>
            <asp:FileUpload ID="profile_pic_input" onchange="profilenewimageinput(this)" runat="server" />
        </ContentTemplate>
    </UpdatePanel>
</div>