【问题标题】:FileUpload: Get filenames with JS not workingFileUpload:使用 JS 获取文件名不起作用
【发布时间】:2021-01-11 09:47:44
【问题描述】:

我想获取文件名并将其放在标签lbName 中,但此代码不起作用。我用asp:FileUpload。这是我的代码:

<asp:FileUpload ID="FileUpload1" AllowMultiple="true" runat="server" Onchange="upload()"/> <asp:Label ID="lbName" runat="server" ForeColor="Gray" Visible="True"></asp:Label>

和JS代码:

function upload() {
    var name = "";

    var files = document.getElementById("<%= FileUpload1.ClientID %>");
    for (var i = 0; i < files.length; i++) {
        name = name + (files[i].name) + ";";
    }
    document.getElementById("lbName").value = "1: " + name;
}

【问题讨论】:

  • 哪个特定位不起作用?
  • 您是否收到错误消息?文件是否已上传但被服务器忽略?越详细越好
  • 我无法将所有文件名放入我的lbName

标签: javascript c# asp.net webforms


【解决方案1】:

您可以使用 jQuery 并将更改事件绑定到 input type=file

<script type="text/javascript">

    $('input[type="file"]').change(function (e) {
        var files = [];
        for (var i = 0; i < $(this)[0].files.length; i++) {
            files.push($(this)[0].files[i].name);
        }
        $(this).next('span').html(files.join(', '));
    });

</script>

或者如果你想让你的 javascript 工作:

<script type="text/javascript">

    function upload() {
        var name = "";
        var files = document.getElementById("<%= FileUpload1.ClientID %>");
        for (var i = 0; i < files.files.length; i++) {
            name = name + (files.files[i].name) + ";";
        }
        document.getElementById("<%= lbName.ClientID %>").innerHTML = "1: " + name;
    }

</script>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-04
    • 2011-05-13
    • 1970-01-01
    • 2013-07-18
    • 1970-01-01
    • 2018-07-21
    • 1970-01-01
    相关资源
    最近更新 更多