使用JQuery获取文件名

时间:2013-07-09 21:22:08

标签: javascript jquery

我在网络应用中使用自定义文件上传按钮。我希望用户看到他们选择了一个文件,所以我更改了div的html以显示文件名。

这是我的jquery:

$("input[type=file]").change(function() {
    var filename = $("input[type=file]").val();
    $("#share-file-name p").html(filename);
});

现在,除了输入值为:

这一事实外,这很有用
C:\fakepath\photo.jpg

这就是用户看到的内容。我只是想让他们看到“photo.jpg”部分。如何使用我的jquery去除文件名以外的所有内容?

谢谢!

5 个答案:

答案 0 :(得分:2)

这应该有效:

filename = filename.replace(/^.*[\/\\]/, "");

答案 1 :(得分:1)

你可以砍掉最右边的任何东西" /"

像这样:

$("input[type=file]").change(function() {
    var filename = $("input[type=file]").val();
    // As pointed out in the comments, this line is required to make it
    // Windows compliant. It's important to handle paths from any OS.
    filename = filename.replace(/^.*[\\\/]/, '');
    $("#share-file-name p").html(filename);
});

答案 2 :(得分:1)

如果您将完整文件路径存储在变量filename中,则可以执行以下操作以仅获取文件名:

filename.substring(filename.lastIndexOf("\"))

正则表达式或split命令对于您正在尝试执行的操作而言过于苛刻。

答案 3 :(得分:0)

使用split("/");,然后你得到一个数组,所有元素用/分隔,所以最后一个元素将是文件名

var file = filepath.split("/"); file[file.length - 1] 

答案 4 :(得分:0)

您可以使用此正则表达式:

 filnameToDisplay = /([^\\]+.\w+$)/.exec(filename)[0];

无论文件路径的长度或文件名中的字符是什么,这都会得到你想要的东西,除非他们使用的是我不知道的奇怪扩展名!