2013-03-12 35 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")%>')