使用带有“split”的jQuery警告输入“file”文件名

时间:2012-08-10 15:32:39

标签: javascript jquery

我正在尝试从上传输入中提醒文件名。

这是我的fiddle

它有效,但有“C:Fakepath ......”之类的东西。 我只想要文件名,没有假路径。我尝试使用split函数,但我不确定它为什么不起作用。

示例html:

<html>
    <head>
        <title>Test Page</title>
        <script src="http://code.jquery.com/jquery-latest.js"></script>
    </head>
    <body>
        <input type="file" id="tester" />
    </body>
</html>

示例脚本:

$(function() {
    var bogus;
    var triple;
    $('#tester').change(function() {

        triple = $('#tester').val();
        bogus = triple.split(/[\s/]+/);

        alert(bogus[bogus.length - 1]);
    });
});

有什么想法吗?

谢谢!

2 个答案:

答案 0 :(得分:6)

你可以逃避斜线:

   bogus = triple.split("\\");

更新了小提琴:http://jsfiddle.net/johnkoer/xwdct/3/

答案 1 :(得分:0)

如果您的网络浏览器支持File API(目前,这是任何非IE的网络浏览器),您可以从输入的FileList对象中获取文件名。

$(function() {
    $('#tester').change(function() {
        var files = this.files;
        if (files && files.length) {
            alert(files[0].name); //use the file api
        }
        else {
            alert($(this).val().replace("C:\\fakepath\\", ""));  //this is for IE
        }
    });
});​

示例:http://jsfiddle.net/NTICompass/xwdct/6/

文档:https://developer.mozilla.org/en-US/docs/Using_files_from_web_applications