2011-01-12 119 views
0

控制我有一个文件上传控件和我进行了这种无形的。事件触发文件上传在asp.net

我想启用,当我点击另一个Button有文件上传控件的浏览Button

我该怎么办?

+0

如果文件上传控件不可见,用户将如何选择要上传哪个文件? – 2011-01-12 03:59:15

+0

在此处获得概述http://www.quirksmode.org/dom/inputfile.html – 2012-12-06 13:09:41

回答

0

我觉得这是不可能的。这可能是一个安全问题,如果脚本可以上传(或至少触发上传过程),任何用户交互都不可见。


更新:

似乎有人居然developed a solution to hide the upload control。从我看来,似乎需要花费一些努力来开发和使用JavaScript。

就个人而言,我也不敢保证,这适用于所有平台(试想一下,有人用黑莓或Windows Phone访问您的网站...),从而避免它。

1

首先制作一个文件了装载机像this one

要上传你需要做两件事情

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

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

所以首先让编写Java脚本做these.`

<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;" /> 

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

现在隐藏使用CSS不需要成分和你做!

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();");