在IE 9和以前的版本中使用document.getElementById()

时间:2014-03-18 14:36:31

标签: javascript html internet-explorer

我有一个用于上传文件的网页。表单上有两个输入字段。一种是用于在文件中为文件命名的文本类型。另一种是文件类型,用于选择要上传的文件。

<input type="text" name="docName" id="docName" size="35" value="" />
<input type="file" name="importFile" id="importFile" size="35" onchange="refreshFileName();"/>

我想使用JavaScript从&#34; importFile&#34;中提取实际文件名(减去文件路径)。字段一旦被选中并自动填充字段&#34; docName&#34;有这个价值。我的JavaScript看起来像这样:

function refreshFileName(){
var fileName = document.getElementById('importFile').value; 

var str = fileName.split("\\");
var length = str.length;

document.getElementById('docName').value = str[length-1]; 
}

这似乎仅适用于Chrome,Firefox和IE 10或11中的文件。但它似乎无法在IE 9或更早版本中运行。我没有尝试过什么似乎解决了这些问题。关于我如何使用早期版本的IE工作的任何建议(我已经想到了这个想法&#34;只是告诉我的用户不要使用IE&#34;)。

2 个答案:

答案 0 :(得分:0)

你可以用这个: How to get the file name from a full path using JavaScript?

var fullPath = document.getElementById('importFile').value; 
var filename = fullPath.replace(/^.*[\\\/]/, '');

此解决方案对Windows和Unix路径非常有用。

答案 1 :(得分:0)

如果问题只是您在IE中找回完整路径,请尝试以下操作:

var fileName = document.getElementById("importFile").value;
document.getElementById('docName').value = fileName.match(/[^\/\\]+$/);