获取保存的文件路径,无需任何回发

时间:2013-03-12 10:14:12

标签: c# javascript asp.net file-upload postback

我希望能够上传文件并获取新保存的路径,而不需要任何回发。我已经尝试使用updatepanel但是发现fileupload为null。

实际上我想获得File_Path_Text以便在javascript方法中使用它。

以下是我正在使用的代码;

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

3 个答案:

答案 0 :(得分: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);

要异步上传文件,您可以使用一些jQuery插件,例如Ajax File Upload

答案 1 :(得分:1)

一个非常简单的选项是uploadify。您可以将其连接到HttpHandler,并在应用程序保持交互的同时在后台进行上传。

UpdatePanels会让您无法上传文件。

答案 2 :(得分:0)

创建一个ashx文件(http处理程序)并将下面的代码(放置你的路径)放在那里。

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