当前位置:  开发笔记 > 编程语言 > 正文

当用户通过<input type ="file"/>选择文件时如何获取文件名?

如何解决《当用户通过<inputtype="file"/>选择文件时如何获取文件名?》经验,为你挑选了3个好方法。

我之前见过类似的问题,由于安全原因,最终没有解决方案.

但今天我看到hostmonster成功实现了这个,当我打开一张票并在后端附加一个文件时.

它适用于firefox和IE(确切地说是版本8).

我已经验证它完全是客户端脚本,没有发送请求(使用firebug).

现在,我们可以重新考虑这个问题吗?



1> CMS..:

您可以获取文件名,但无法获得完整的客户端文件系统路径.

尝试在事件中访问value文件的属性.inputchange

大多数浏览器只会给你文件名,但有一些例外,比如IE8会给你一个假的路径,如:"C:\fakepath\myfile.ext"和旧版本(IE <= 6)实际上会给你完整的客户端文件系统路径(由于它缺乏安全).

document.getElementById('fileInput').onchange = function () {
  alert('Selected file: ' + this.value);
};


可以像这样清理它:`f = f.replace(/.*[\\\\] /,'');`
我在chrome中得到`C:\ fakepath\...`,但这对我的目的来说很好.谢谢.
在处理函数中捕获事件,然后使用evt.target.files [0] .name.
这是关于安全原因.网站不得学习用户的文件夹路径.

2> 小智..:

您可以使用下一个代码:

JS

    function showname () {
      var name = document.getElementById('fileInput'); 
      alert('Selected file: ' + name.files.item(0).name);
      alert('Selected file: ' + name.files.item(0).size);
      alert('Selected file: ' + name.files.item(0).type);
    };

HTML


    



3> John Boker..:

刚刚测试过,这似乎适用于firefox和IE


    
        
    
    
        

推荐阅读
吻过彩虹的脸_378
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有