我用过这个:
$('input[type=file]').val()
选择文件名,但它返回完整路径,如“C:\fakepath\filename.doc”。“fakepath”部分实际上在那里 - 不确定它是否应该存在,但这是我第一次使用文件上传的文件名。
我怎样才能得到文件名(filename.doc)?
我用过这个:
$('input[type=file]').val()
选择文件名,但它返回完整路径,如“C:\fakepath\filename.doc”。“fakepath”部分实际上在那里 - 不确定它是否应该存在,但这是我第一次使用文件上传的文件名。
我怎样才能得到文件名(filename.doc)?
var filename = $('input[type=file]').val().split('\\').pop();
或者你可以这样做(因为它总是C:\fakepath
出于安全原因添加):
var filename = $('input[type=file]').val().replace(/C:\\fakepath\\/i, '')
你只需要执行下面的代码。第一个 [0] 是访问 HTML 元素,第二个 [0] 是访问文件上传的第一个文件(我包含了一个验证,以防没有文件):
var filename = $('input[type=file]')[0].files.length ? ('input[type=file]')[0].files[0].name : "";
获取所有操作系统的路径
var filename = $('input[type=file]').val().replace(/.*(\/|\\)/, '');
例子
C:\fakepath\filename.doc
/var/fakepath/filename.doc
都返回
filename.doc
filename.doc
这是我的做法,效果很好。
在你的 HTML 中做:
<input type="file" name="Att_AttributeID" onchange="fileSelect(event)" class="inputField" />
然后在你的 js 文件中创建一个简单的函数:
function fileSelect(id, e){
console.log(e.target.files[0].name);
}
如果您正在处理多个文件,您还应该能够通过循环获取列表:
e.target.files[0].name