2

我有以下 HTML 标记:

<div>
  <a>browse<input type="file" name="annex"></a>
  <span class="filename"></span>
</div>

我正在使用这个标记来设置带有 CSS 的文件输入样式。

我想在类“文件名”的范围内显示文件名(filename.ext)。

我用 JQuery 尝试了以下操作:

$('.file').on('file', function (event, files, label) {
  $('.path').html($(this).val().replace(/\\/g, '/').replace(/.*\//, ''));
  alert($(this).val());
});

跨度仍然为空,警报结果也为空。

我怎样才能做到这一点?

谢谢你,米格尔

4

3 回答 3

2

尝试这个:

$('input[type="file"]').on('change', function (event, files, label) {
    var file_name = this.value.replace(/\\/g, '/').replace(/.*\//, '')
    $('.filename').text(file_name);
});

演示在这里

于 2013-10-14T18:40:11.010 回答
0

你可以读取它,但你不能设置它。所以在你点击它并选择一个文件之前它不会有任何价值。

即使这样,该值也可能会被 c:\fakepath\ 之类的东西破坏,以保持用户文件系统的详细信息私有。

参考无法获取输入类型=“文件”的值?

试试这个链接Get filename from input [type='file'] using jQuery

于 2013-10-02T16:32:55.933 回答
0

对于 JavaScript 是不可能的,因为脚本读取本地文件路径被认为是不安全的。

但是,如果您正在创建一个 HTML5 网站,您可能会更幸运地使用HTML5 File API

此外,您可能想在这里查看这个有趣的链接.....

于 2013-10-02T16:31:43.860 回答