2

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

实际上,我想获得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" />
4

3 回答 3

1

您可以将文本分配给隐藏字段并使该隐藏字段服务器可访问。您还可以使用公共属性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

于 2013-03-12T10:16:50.673 回答
1

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

UpdatePanels 会给您上传文件带来麻烦。

于 2013-03-12T10:17:06.043 回答
0

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

window.open('<%=Server.MapPath("~/path")%>')
于 2013-03-31T20:00:20.483 回答