jquery在Chrome上获取输入文件值
当jquery在Chrome上获取输入文件值,jquery,google-chrome,file-upload,onchange,Jquery,Google Chrome,File Upload,Onchange,当输入字段发生更改事件时,我尝试获取上载值 但我在Chrome上得到了这个值 C:\fakepath\winnie-the-pooh.jpg 因此,我将\和数组中的最后一项分开 jquery $("#upload").change(function(){ var fragment = $("#upload").val(); var array_fragment = fragment.split('\/'); alert($(array_fragment).last()
输入字段发生更改事件时,我尝试获取上载值
但我在Chrome上得到了这个值
C:\fakepath\winnie-the-pooh.jpg
因此,我将\
和数组中的最后一项分开
jquery
$("#upload").change(function(){
var fragment = $("#upload").val();
var array_fragment = fragment.split('\/');
alert($(array_fragment).last()[0]);
});
但是我仍然得到了C:\fakepath\winnie the pooh.jpg
而不是Chrome上的winnie the pooh.jpg
我怎样才能使它工作
html
<input type="file" name="image" id="upload"/>
您需要在\
上拆分,而不是/
:
var array_fragment = fragment.split('\\');
不过,理想情况下,你会在这两个问题上分道扬镳。幸运的是,split
采用正则表达式:
var array_fragment = fragment.split(/\\|\//);
regex的基本意思是“\
或/
”——管道操作符
是“或”,开头和结尾的/
字符表示正则表达式介于两者之间。您需要在\
上拆分,而不是//code>:
var array_fragment = fragment.split('\\');
不过,理想情况下,你会在这两个问题上分道扬镳。幸运的是,split
采用正则表达式:
var array_fragment = fragment.split(/\\|\//);
regex的基本意思是“\
或/
”——管道操作符
是“or”,开头和结尾的/
字符表示正则表达式介于两者之间。你可以阅读我几个月前的帖子:
根据你的要求,你可以从那篇文章中得到一些东西 你可以阅读我几个月前问过的帖子:
根据你的要求,你可以从那篇文章中得到一些东西 您不需要jQuery来操作数组。此外,文件路径可能不包含斜杠,例如在Firefox上。考虑这个例子:
var filename = $("#upload").val().replace(/.+[\\\/]/, "");
alert(filename);
这比用jQuery包装数组只是为了得到它的最后一个元素要好。不需要jQuery来操作数组。此外,文件路径可能不包含斜杠,例如在Firefox上。考虑这个例子:
var filename = $("#upload").val().replace(/.+[\\\/]/, "");
alert(filename);
这比用jQuery包装数组只是为了得到它的最后一个元素要好。如果没有斜杠,那么split
将返回一个包含一个元素(整个输入)的数组,因此最后一个元素仍然是文件名。尽管如此,我还是喜欢这个答案。通常越短越好。如果没有斜杠,则split
将返回一个元素数组(整个输入),因此最后一个元素仍然是文件名。尽管如此,我还是喜欢这个答案。一般来说,越短越好。在chrome中无法获得完整路径。在chrome中无法获得完整路径。