2011-01-12 74 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();");