在 ASP.NET 中使用像 FileUpload 这样的按钮

Gio*_*e90 1 c# asp.net file-upload

我有这种情况:

在此处输入图片说明

两个普通的 ASP.NET 控件。但我想隐藏 FileUpload 控件,并保留唯一的 Button。

如此微不足道的事情给我带来的问题比预期的要多。这是我的实现:

ASPX :

<asp:FileUpload ID="FileUpload1" runat="server" />

<asp:Button ID="UploadButton" runat="server" Text="Carica Documento" OnClientClick="showBrowseDialog();" />

<asp:Button runat="server" ID="hideButton" Text="" style="display:none;" OnClick="UploadButton_Click" />

<script type="text/javascript" language="javascript">
    function showBrowseDialog() {
        var fileuploadctrl = document.getElementById('<%= FileUpload1.ClientID %>');
        fileuploadctrl.click();

        var btn = document.getElementById('<%= hideButton.ClientID %>');
        btn.click();
    }
</script>
Run Code Online (Sandbox Code Playgroud)

C#:

protected void UploadButton_Click(object sender, EventArgs e)
{
    if (FileUpload1.HasFile)
    {
        try
        {
            string address = Server.MapPath("") + "\\" + FileUpload1.FileName;
            FileUpload1.SaveAs(address);
            //...
        }
        catch (Exception) { }
    }
Run Code Online (Sandbox Code Playgroud)

Ale*_*hov 5

试试这个布局

<asp:FileUpload ID="FileUpload1" Style="display: none" runat="server" onchange="upload()" />
<input type="button" value="Carica Documento"  onclick="showBrowseDialog()"/>

<asp:Button runat="server" ID="hideButton" Text="" Style="display: none;" OnClick="UploadButton_Click" />

<script type="text/javascript" language="javascript">
    function showBrowseDialog() {
        var fileuploadctrl = document.getElementById('<%= FileUpload1.ClientID %>');
        fileuploadctrl.click();
    }

    function upload() {
        var btn = document.getElementById('<%= hideButton.ClientID %>');
        btn.click();
    }
</script>
Run Code Online (Sandbox Code Playgroud)