文件名未显示在引导程序的文件输入中

问题描述

我有这个HTML代码

<head>
  <link rel="stylesheet" href="./Depd/bootstrap.min.css">
</head>

<body>
  <div class="input-group">
    <div class="custom-file">
      <input type="file" class="custom-file-input" id="inputGroupFile04" aria-describedby="inputGroupFileAddon04">
      <label class="custom-file-label" for="inputGroupFile04">Choose file</label>
    </div>
    <div class="input-group-append">
      <button class="btn btn-outline-secondary" type="button" id="inputGroupFileAddon04">Button</button>
    </div>
  </div>
  <script src="./Depd/jquery.slim.min.js">
  </script>
  <script src="./Depd/popper.min.js"></script>
  <script src="./Depd/bootstrap.min.js"></script>
</body>
当我运行并尝试通过单击浏览并选择一个文件来上载文件时,我想将标签文本更改为我上载的文件名,如何实现? 我正在使用引导程序。如果您不使用引导程序并使用普通的html,它将以认方式工作并显示文件名。但是我必须在这里使用引导程序。因此,请提出一个与引导程序一起使用的解决方案。

解决方法

您将需要使用一些JavaScript。我将指导您完成这些步骤:首先检测文件何时上传,然后获取文件名并使用文件名更新标签内容。下面是一个简单的示例。

let input = document.getElementById("inputGroupFile04");
let label = document.querySelector("label[for='inputGroupFile04']");
input.addEventListener("change",e => {
  label.innerText = input.value.split(`C:\\fakepath\\`)[1];
});
<head>
  <link rel="stylesheet" href="./Depd/bootstrap.min.css">
</head>

<body>
  <div class="input-group">
    <div class="custom-file">
      <input type="file" class="custom-file-input" id="inputGroupFile04" aria-describedby="inputGroupFileAddon04">
      <label class="custom-file-label" for="inputGroupFile04">Choose file</label>
    </div>
    <div class="input-group-append">
      <button class="btn btn-outline-secondary" type="button" id="inputGroupFileAddon04">Button</button>
    </div>
  </div>
  <script src="./Depd/jquery.slim.min.js">
  </script>
  <script src="./Depd/popper.min.js"></script>
  <script src="./Depd/bootstrap.min.js"></script>
</body>

如果您需要更多说明,请随时询问。