2011-10-30 78 views
0

我想上傳一個圖像在我的主機上我的aspx頁面。但我可以用ajax嗎?(我的意思是,在上傳過程中沒有回傳)。需要關於使用ajax上傳文件的一些想法

我看着gmail文件上傳,經典模式使用亞麻(這是個壞主意),但我可以理解現代模式?!

根據我在谷歌搜索是不可能出於安全考慮,可以occure

一些身體幫我這個問題。

+1

沒有您嘗試使用I幀 – Marwan

+0

是紈絝子弟,我的頁面調回;-) –

+0

不是因爲你是在iframe裏面的頁面,但該頁面,它使用你的進度條 – Marwan

回答

1

你可以做這樣的..使用「用ajax上傳文件」 AJAX .....

步驟1:首先創建在單獨的頁上載形式,其爲這樣的(myIframe.html)

<form method="POST" target="_self" enctype="multipart/form-data" action="main.aspx"> 
    <input type="file" name="fileUpload" /> 
    <input type="submit" value="UPLOAD" /> 
    </form> 

第2步:在主頁面(main.aspx)中,您必須放置一個iframe並將其加載到該頁面中。你也可以使邊框不可見,所以它看起來不像是一個iframe。

<iframe name="iUploadFrame" src="myIframe.html" frameborder="0" onload="iUploadFrameLoad();"></iframe> 

請注意,這是指定JavaScript的onload事件處理函數。那個人會在下面解釋它。

步驟3:爲了進行測試,在main.aspx和UpdatePanel的一個按鈕和標籤這樣的:

<asp:UpdatePanel ID="pnlMain" runat="server"> 
<ContentTemplate> 
<asp:Label id="lblMessage" runat="server" /> 
<asp:Button id="btnUploadComplted" runat="server" style="visibility:hidden;" /> 
</ContentTemplate> 
<Triggers> 
<asp:AsyncPostBackTrigger ControlID="btnUploadCompleted" EventName="Click" /> 
</Triggers> 
</asp:UpdatePanel> 

注意,如果你願意,你可以使用CSS樣式隱藏按鈕,但不設置visible =「False」屬性。這是因爲如果您希望在輸出文檔中具有按鈕html,並且希望通過該按鈕觸發ajax回調。

STEP 4:您可以定義按鈕的點擊事件處理程序的代碼隱藏這樣的:

protected void btnUploadCompleted_Click(object s, EventArgs e) { 
     lblMessage.Text = "UPLOAD PROCESS COMPLETED SUCCESSFULLY"; 
    } 

步:5現在,保存文件,你可以做寫代碼的後臺代碼是這樣的:

protected void Page_Load(object s, EventArgs e) { 
    if ((Request.Files.Count == 1)) { 
     // process to save file 
     Response.Write("SUCCESS"); 
     Response.End(); 
    } 
} 

步:6現在所有我們需要做的是創建JavaScript函數的過程變成AJ整合ax實現。當上傳過程完成時,該事件將觸發,並且它將觸發btnUploadCompleted的click事件,該事件負責進行我們的ajax調用。

<script type="text/javascript"> 
function iUploadFrameLoad() { 
if (window.iUploadFrame.document.body.innerHTML == "SUCCESS") { 
document.forms[0].elements[btnUploadCompleted].click(); 
} 
} 
</script> 

我希望它會幫助你...

+0

WOW.Great !!!優秀花花公子 –

+0

@AliForoughi如果這個答案真的有幫助,那麼你可以標記爲答案這一個... –

+0

嘿夥計,我的網頁又回來了:'( –

相關問題