我用了这个:
$('input[type=file]').val()
如何仅获取文件名(filename.doc)?当我尝试获取所选的文件名时,实际返回的是完整路径,例如"C:\fakepath\filename.doc"。"fakepath"部分确实存在 - 不确定是否应该存在,但这是我第一次使用文件上传的文件名。
我用了这个:
$('input[type=file]').val()
如何仅获取文件名(filename.doc)?当我尝试获取所选的文件名时,实际返回的是完整路径,例如"C:\fakepath\filename.doc"。"fakepath"部分确实存在 - 不确定是否应该存在,但这是我第一次使用文件上传的文件名。
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
var filename = $('input[type=file]').val().replace(/.*(\/|\\)/, '');
正在使用jQuery。 - Zarepheth这是我做的方法,效果非常好。
在你的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
var fileName = $('input[type=file]').val();
var clean=fileName.split('\\').pop(); // clean from C:\fakepath OR C:\fake_path
alert('clean file name : '+ fileName);
$('input[type="file"]').change(function(e){
var fileName = e.target.files[0].name;
alert('The file "' + fileName + '" has been selected.');
});
var pathArray = $('input[type=file]').val().split('\\');
alert(pathArray[pathArray.length - 1]);
是否必须使用jQuery?或者您可以只使用JavaScript的本地代码yourpath.split("\\")
将字符串拆分为数组吗?
<script type="text/javascript">
$('#upload').on('change',function(){
// output raw value of file input
$('#filename').html($(this).val().replace(/.*(\/|\\)/, ''));
// or, manipulate it further with regex etc.
var filename = $(this).val().replace(/.*(\/|\\)/, '');
// .. do your magic
$('#filename').html(filename);
});
</script>
C:\fakepath\
,以防恶意网站使用Javascript来获取有关计算机目录结构的信息。 - drudge