如何从FileUpload控件中按文件路径填充TextBox

时间:2013-08-17 12:38:44

标签: asp.net file-upload

您好我隐藏了FileUpload控件,textBox我想写url adrres或者!某个文件的文件路径,以及调用FileUpload的按钮。我的问题是我需要在用户检查fileupload后立即控制一些文件并关闭弹出窗口,用文件路径填充TextBox。 我知道如何显示文件路径,但我需要自动执行它并为我设置陷阱。 这是我到目前为止所得到的

<div class="ViewContent">
  <asp:FileUpload ID="FileUpload2" runat="server" Width="317px" style="display: none"/>
  <input id="btnFileUpload" type="button" value="Add" runat="server" style="width: 70px" />
    <asp:TextBox ID="TextBox2" runat="server" Width="310px"/>
</div>

protected void Page_Load(object sender, EventArgs e)
{
  btnFileUpload.Attributes.Add(
    "onclick",
    "document.getElementById('" + FileUpload2.ClientID + "').click();");  
}

所以回答很简单:我应该把我的支票代码放在哪里填写TextBox?像这样的东西

if (FileUpload2.PostedFile != null)
{
  TextBox2.Text = System.IO.Path.GetFullPath(FileUpload2.PostedFile.FileName);
}

2 个答案:

答案 0 :(得分:1)

这个脚本可以完成这项工作:

<script type="text/javascript">
        $(document).ready(function () {

            $(document).on('change', '#<%= FileUpload2.ClientID%>', function (e) {
            $('#<%= TextBox2.ClientID%>').val(e.target.files[0].name);
        });

            $('#<%=btnFileUpload.ClientID%>').click(function () {
                $('#<%= FileUpload2.ClientID%>').trigger('click');                
            });

    });
</script>

像下面一样添加对jquery的引用,并删除代码形式Page_Load()。

<head runat="server">
    <script src="Scripts/jquery-1.8.2.js"></script>

甚至:

<head runat="server">
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>

你的Page_Load():

protected void Page_Load(object sender, EventArgs e)
{
  //btnFileUpload.Attributes.Add(
    //"onclick",
    //"document.getElementById('" + FileUpload2.ClientID + "').click();");  
}

答案 1 :(得分:0)

由于你想立即获取文件名,你应该使用这样的javascript:

var fu1 = document.getElementById("FileUpload1");
alert("You selected " + fu1.value);

让我知道其他什么。