0

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

<input type="file">

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

});

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

4

1 回答 1

0

您可以使用 javascriptsubstringlastIndexOf从完整路径中提取文件名,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)

});

点击这里查看演示

当用户选择任何文件时,根据注释中的要求进行编辑以获取文件名

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)


})

演示

于 2013-11-13T13:58:42.007 回答