首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用jQuery获取文件输入的选定文件名,不带路径

使用jQuery获取文件输入的选定文件名,不带路径
EN

Stack Overflow用户
提问于 2011-06-16 08:16:36
回答 14查看 367K关注 0票数 161

我使用了这个:

代码语言:javascript
复制
$('input[type=file]').val()

以获取选定的文件名,但它返回完整路径,如"C:\fakepath\filename.doc“。"fakepath“部分实际上是存在的--不确定它是否应该存在,但这是我第一次使用文件上传的文件名。

如何才能获得文件名(filename.doc)?

EN

回答 14

Stack Overflow用户

回答已采纳

发布于 2011-06-16 08:21:37

代码语言:javascript
复制
var filename = $('input[type=file]').val().split('\\').pop();

或者您可以直接这样做(因为出于安全原因,添加的总是C:\fakepath ):

代码语言:javascript
复制
var filename = $('input[type=file]').val().replace(/C:\\fakepath\\/i, '')
票数 318
EN

Stack Overflow用户

发布于 2014-06-03 03:42:32

你只需要做下面的代码。第一个是访问HTML元素,第二个是访问文件上传的第一个文件(我在没有文件的情况下包含了一个验证):

代码语言:javascript
复制
    var filename = $('input[type=file]')[0].files.length ? ('input[type=file]')[0].files[0].name : "";
票数 71
EN

Stack Overflow用户

发布于 2011-06-16 08:21:50

由于安全原因,Chrome返回C:\fakepath\... -网站不应该能够获得关于你的计算机的信息,例如你计算机上的文件的路径。

要只获取字符串的文件名部分,可以使用split()...

代码语言:javascript
复制
var file = path.split('\\').pop();

jsFiddle

...or a regular expression...

代码语言:javascript
复制
var file = path.match(/\\([^\\]+)$/)[1];

jsFiddle

...or lastIndexOf()...

代码语言:javascript
复制
var file = path.substr(path.lastIndexOf('\\') + 1);

jsFiddle

票数 23
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6365858

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档