Javascript:有没有办法获取拖入文件的文件名?

时间:2011-05-17 03:25:29

标签: javascript drag-and-drop filenames

当用户拖拽文件时,Javascript中是否有办法检测其文件名onDragEnter(不是在上传后)?

1 个答案:

答案 0 :(得分:1)

并非每个浏览器都支持将文件拖动到文件输入(OS X上的FF4当然不支持),但是可以检查change事件上的文件输入值,应该在浏览器之间提供统一的结果。

根据浏览器的不同,您可以检查

的值
<input type="file" id="foo" />
像这样:

// vanilla JS
var filename = document.getElementById('foo').value;

// jQuery
var filename = $('#foo').val();

你会在change监听器中执行此操作,如下所示(以下jsFiddle中的jQuery示例):

function alertFileName()
{
    alert(this.value);
}

var input = document.getElementById('foo');

// not IE friendly; use `attachEvent` instead
input.addEventListener('change', alertFilename, false);

如果您上传名为bar.txt的文件,则filename将为:

  • 'C:\fakepath\bar.txt'(Chrome)
  • 'bar.txt'(Firefox 4,Safari)
  • ??? (IE)

我目前没有参加IE测试;随意try it yourself