首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用按钮而不是FileUpload上传文件的ASP.NET

使用按钮而不是FileUpload上传文件的ASP.NET
EN

Stack Overflow用户
提问于 2020-02-06 03:29:10
回答 1查看 32关注 0票数 0

我正在尝试上传一个带有Button元素的文件,该文件使用隐藏的FileUpload元素和ASP.NET,使用以下代码片段:

代码语言:javascript
运行
复制
protected void Page_Load(object sender, EventArgs e)
{
    Button2.Attributes.Add("onclick", "document.getElementById('" + FileUpload1.ClientID + "').click();");
}

我的按钮有Id = "Button2",FileUpload Id = "FileUpload1"。单击Windows资源管理器按钮可成功打开上传文件,但FileUpload.HasFile在后续代码中仍返回false (即使资源管理器打开并选择了文件,也不会加载任何文件)。

此问题的原因是什么?如何解决?

EN

回答 1

Stack Overflow用户

发布于 2020-02-06 06:44:26

好吧,我猜你想隐藏FileUpload控件,但仍然可以上传文件。

按照以下步骤实现所需的功能:

  1. 放置一个隐藏了类的FileUpload控件。如下所示:

代码语言:javascript
运行
复制
<style>
    .hidden{
      display: none;
    }
</style>
<asp:FileUpload runat="server" ID="FileUpload1" CssClass="hidden" />

然后,

  1. 将放置一个对客户端可见的按钮,并将处理Javascript events

代码语言:javascript
运行
复制
<asp:Button runat="server" ID="Button1" Text="Upload File" OnClick="Button1_Clicked" />

  1. 添加Javascript事件来处理

中的事情

代码语言:javascript
运行
复制
$(document).ready(function(){
    // This event will help click the FileUpload control
    $('#<%= Button1.ClientID %>').on('click', function(){
        $('#<%= FileUpload1.ClientID %>').click();
        return false; // important to return false, so it does not posts back yet.
    });

    $('#<%= FileUpload1.ClientID %>').on('change', function(){ // To see if the file selection was changed and the user has selected something
        if($(this).val() == ''){
            alert('No file selected');
            return false;
        }
        if(confirm('Do you want to upload this file? ' + $(this).val())){
            __doPostBack('<%= Button1.ClientID %>', ''); // this will postback to the server click event
        }
    });

});

  1. 现在,处理上传的文件。

代码语言:javascript
运行
复制
public void Button1_Clicked(object sender, EventArgs e)
{
    // Handle your upload function
    var hasFile = FileUpload1.HasFile;
}

PS:这是一个粗略的想法,代码没有经过测试,所以它可能需要一些爱。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60082843

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档