2013-03-12 37 views
2

我希望能夠上傳文件並獲取新保存的路徑,無需任何回發。我已經嘗試使用updatepanel但是,文件上載被發現爲空。獲取保存的文件路徑,無需任何回傳

實際上,我想獲得File_Path_Text以便在javascript方法中使用它。

follwoing是我使用的代碼;

protected void get_path(object sender, EventArgs e) 
     { 
      if (FileUpload1.HasFile) 
      { 
       FileUpload1.SaveAs(@"C:\temp\" + FileUpload1.FileName); 
       File_Path_Text = @"C:\temp\" + FileUpload1.FileName; 
      } 
     } 

以下是asp部分;

<asp:FileUpload ID="FileUpload1" runat="server" accept="kml"/> 
<asp:Button id="Button1" text="Add layer to map" OnClick="get_path" runat="server" /> 

回答

1

您可以將文本指定給隱藏字段並使該隱藏字段服務器可訪問。您還可以使用public propert y爲其分配值並在客戶端上訪問它。

的Html

<input type="hidden" runat="serer" id="hdnText" /> 

後面的代碼

hdnText.Value = @"C:\temp\" + FileUpload1.FileName; 

的Javascript

alert(document.getElementById("<%= hdnText.ClientID %>").value); 

要上傳文件asynchrono你可以使用一些jQuery插件,如Ajax File Upload

+0

但我是對的,如果我說這樣的話還會有回傳嗎? – 2013-03-12 10:23:40

+0

是的,它會被回發。 – Adil 2013-03-12 10:24:40

+0

我想刪除回帖但thnks爲您的帖子 – 2013-03-12 10:25:29

1

一個非常簡單的選項是uploadify。您可以將它掛接到一個HttpHandler上,並在應用程序保持交互時在後臺進行上傳。

UpdatePanels會給你上傳文件帶來麻煩。

+0

你可以通過將它掛接到httphandler的意思來解釋嗎? Thiks @nunespascal – 2013-03-12 10:24:21

+0

Uploadify以服務器端腳本作爲參數。這最好作爲一個HttpHandler來實現,你應該通過簡單的搜索來獲得它的代碼。通過掛鉤,我的意思是指定你的HttpHandler接受服務器上的文件的url – nunespascal 2013-03-12 10:34:10

0

創建一個ashx文件(http處理程序),並把下面的代碼(把你的路徑)在那裏。

window.open('<%=Server.MapPath("~/path")%>')