2

ポストバックなしで、ファイルをアップロードして、新しく保存されたパスを取得できるようにしたいと考えています。私はすでに使用しようとしupdatepanelましたが、ファイルのアップロードが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" />
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);

ファイルを非同期的にアップロードするには、 Ajax File Uploadなどの jQuery プラグインを使用できます。

于 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 に答える