在IE中单击使用上传文件路径

时间:2013-11-13 13:02:41

标签: jquery internet-explorer onclick

我想在用户选择文件时获取上传的文件路径。我尝试使用更改它在所有浏览器中工作正常,但在Internet Explorer中不起作用。有没有办法做到这一点?

<input type="file">

$(document).on('click',':file',function(){
    alert($(this).val());

});

小提琴http://jsfiddle.net/j9ran/

1 个答案:

答案 0 :(得分:0)

您可以使用javascript的substringlastIndexOf从完整路径c:\fakepath\xyz.jpg中提取文件名,如下所示: -

<强> HTML

<form>
  <input id ="input" type="file" />
  <input  id="smt" type="submit" />
</form>

<强>脚本

$('#smt').click(function(e)
{
 e.preventDefault();

 var filename=$('#input').val().substring($('#input').val().lastIndexOf('\\') + 1)

 alert(filename)

});

Click here for DEMO

根据评论中的要求进行编辑,以便在用户选择任何文件时获取文件名

<强> HTML

<input id="input" type="file" />
<p></p>

<强>脚本

var filename;

var t;

$('#input').click(function (e) {

    $('#input').val(""); //to clear previous file name ,if any

    clearInterval(t); //if any previous interval is running 

    t = setInterval(function () {

        if ($('#input').val().length > 0) {

            filename = $('#input').val().substring($('#input').val().lastIndexOf('\\') + 1);

            clearInterval(t);

            $('p').text("");

            $('p').text("you have chosen " + filename);
        }

        else if ($('#input').val().length == 0) {

            $('p').text("");

            $('p').text("haven't chosen any file");
        }

    }, 500)


})

DEMO