单击按钮事件以在asp.net中触发fileupload控件

时间:2011-01-12 03:16:34

标签: c# asp.net button file-upload

我有一个文件上传控件,我让它变得不可见。

当我点击另一个Button时,我想为该文件上传控件启用浏览Button

我该怎么做?

3 个答案:

答案 0 :(得分:1)

首先制作一个像this one

这样的文件加载器

要上传文件,您需要做两件事

1)选择文件。 (点击浏览按钮)

2)将其发送到服务器。 (点击上传按钮)

首先让我们编写一个java脚本来执行这些操作。

<script type="text/javascript" > 
function uploadImage() {
    $('#MainContent_UploadButton').click()
}
function selectFile() {
    $('#MainContent_FileUploadControl').click();
}
</script>

现在,只要选择了文件,文件上传控制器就会自动上传

 <asp:FileUpload id="MainContent_FileUploadControl" runat="server" 
            onChange="uploadImage()" class="hidden"/>

然后创建一个新按钮,让它在单击后立即选择该文件。

    <asp:Button ID="MainContent_UploadButton" runat="server" Text="Upload File" 
            OnClientClick="selectFile(); return false;" />

最重要的一点是在onClientClick字段中输入“return false”。它将阻止回发的按钮,让您选择文件而不刷新页面。

现在使用css隐藏不需要的组件,你就完成了!

答案 1 :(得分:0)

我认为这是不可能的。如果脚本可以上传(或至少触发上传过程),那么这可能是一个安全问题。


<强>更新

似乎有人developed a solution to hide the upload control。从我读到的内容来看,似乎需要花费一些精力来开发和使用JavaScript。

就个人而言,我不敢保证这适用于所有平台(只需想象有人使用BlackBerry或Windows Phone访问您的网站......),从而避免使用它。

答案 2 :(得分:0)

<asp:FileUpload ID="FileUpload1" runat="server" style="display:none;"/>
<input id="btnFileUpload" type="button" value="Add" runat="server" />

btnFileUpload.Attributes.Add("onclick", "document.getElementById('" + FileUpload1.ClientID + "').click();");