Asp.net 如何从FileUpload控件按文件路径填充文本框

Asp.net 如何从FileUpload控件按文件路径填充文本框,asp.net,file-upload,Asp.net,File Upload,你好,我有一个隐藏的文件上传控件,文本框,我想在这里写url地址或!某个文件的文件路径,以及调用文件上载的按钮。我的问题是,我需要在用户签入文件上传后立即控制一些文件并关闭弹出窗口,用该文件的文件路径填充文本框。 我知道如何显示文件路径,但我需要做它自动和陷阱为我。 这是我到目前为止得到的 <div class="ViewContent"> <asp:FileUpload ID="FileUpload2" runat="server" Width="317px" style

你好,我有一个隐藏的文件上传控件,文本框,我想在这里写url地址或!某个文件的文件路径,以及调用文件上载的按钮。我的问题是,我需要在用户签入文件上传后立即控制一些文件并关闭弹出窗口,用该文件的文件路径填充文本框。 我知道如何显示文件路径,但我需要做它自动和陷阱为我。 这是我到目前为止得到的

<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>
所以答案很简单:我应该把填写文本框的检查码放在哪里?像这样的

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

由于您希望立即获取文件名,因此应使用如下javascript:

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

如果还有其他问题,请告诉我。

由于您希望立即获取文件名,您应该使用如下javascript:

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

如果还有其他问题,请告诉我。

此脚本将完成以下工作:

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

此脚本将执行以下操作:

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

我应该在哪里调用这个函数?当我需要在用户从FileUpload控件检查文件后立即填充文本框时。因为我可以在纯csharp中获取文件路径,但在文件上载关闭弹出窗口后需要它。例如,我可以调用javascript,它在文件上载时可以像onchange=“alert('您选择的文件:'+this.value')一样正常工作,但我需要这个值保存在code=behind中。你知道我应该怎么做吗?document.getElementById(“txtBox1”).value=fu1.value;好的,看起来不错,但不起作用我在FIlUpload onchange中得到了这个事件调用javascript函数,比如这个函数Test(){var fu1=document.getElementById('FileUpload2');document.getElementById('TextBox2')。value=fu1.value;}我在javascript中不太好,你能帮我吗?这个脚本有什么问题吗?因为当我把alert('value of var:'+fu1.value)放在一起时,什么都没有显示。我应该在哪里调用这个函数?当我需要在用户从FileUpload控件检查文件后立即填充文本框时。因为我可以在纯csharp中获取文件路径,但在文件上载关闭弹出窗口后需要它。例如,我可以调用javascript,它在文件上载时可以像onchange=“alert('您选择的文件:'+this.value')一样正常工作,但我需要这个值保存在code=behind中。你知道我应该怎么做吗?document.getElementById(“txtBox1”).value=fu1.value;好的,看起来不错,但不起作用我在FIlUpload onchange中得到了这个事件调用javascript函数,比如这个函数Test(){var fu1=document.getElementById('FileUpload2');document.getElementById('TextBox2')。value=fu1.value;}我在javascript中不太好,你能帮我吗?这个脚本有什么问题吗?因为当我把alert('value of var:'+fu1.value)放进去时,什么都没有显示。这个函数叫做automaticaly?Add reference和headcontent中的类似吗?我试过了,但没有发生任何事情,因为jquery可能没有附加。我已经更新了我的答案,以显示如何附加它。感谢您的耐心等待。所以现在它工作了/但我不知道如何>D/还有一个小问题,就是在文本框中我只得到了文件名。我可以让某人获得完整路径吗?您可能在codebehind中有代码来运行上载程序-这导致了运行它两次。回答第二个问题,您无法从文件上载获取完整路径。某些浏览器可能支持它。请看这个:你非常感谢邹先生。我现在明白了。我花了一整天来处理这件事,我想我明白了。我必须在将来学习Jquery真正好的特性:)这个函数叫做automaticaly?addreference类似于headcontent?我试过了,但没有发生任何事情,因为jquery可能没有附加。我已经更新了我的答案,以显示如何附加它。感谢您的耐心等待。所以现在它工作了/但我不知道如何>D/还有一个小问题,就是在文本框中我只得到了文件名。我可以让某人获得完整路径吗?您可能在codebehind中有代码来运行上载程序-这导致了运行它两次。回答第二个问题,您无法从文件上载获取完整路径。某些浏览器可能支持它。请看这个:你非常感谢邹先生。我现在明白了。我花了一整天来处理这件事,我想我明白了。我必须在将来学习Jquery真正好的特性:)
<head runat="server">
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
protected void Page_Load(object sender, EventArgs e)
{
  //btnFileUpload.Attributes.Add(
    //"onclick",
    //"document.getElementById('" + FileUpload2.ClientID + "').click();");  
}