【问题标题】:jquery get the input file value on Chromejquery 获取 Chrome 上的输入文件值
【发布时间】:2011-09-03 13:21:58
【问题描述】:

input fieldchange event发生时,我尝试获取上传值

但我在 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]);

});

但我在 Chrome 上仍然得到 C:\fakepath\winnie-the-pooh.jpg 而不是 winnie-the-pooh.jpg

我怎样才能让它发挥作用?

html,

<input type="file" name="image" id="upload"/>

【问题讨论】:

标签: jquery google-chrome file-upload onchange


【解决方案1】:

您需要拆分\,而不是/

var array_fragment = fragment.split('\\');

不过,理想情况下,你会分道扬镳。幸运的是,split 采用正则表达式:

var array_fragment = fragment.split(/\\|\//);

该正则表达式基本上表示“\/”——管道运算符 | 是“或”,开头和结尾的 / 字符表示介于两者之间的正则表达式.

【讨论】:

    【解决方案2】:

    您不需要 jQuery 来操作数组。此外,文件路径可能不包含斜杠,例如在火狐上。考虑这个例子:

    var filename = $("#upload").val().replace(/.+[\\\/]/, "");
    alert(filename);
    

    这比用 jQuery 包装一个数组来获取它的最后一个元素要好。

    【讨论】:

    • 如果没有斜线,那么split 将返回一个包含一个元素(整个输入)的数组,所以最后一个元素仍然是文件名。也就是说,我确实喜欢这个答案。通常越短越好。
    【解决方案3】:

    你可以阅读我几个月前问过的帖子:: my question

    根据您的要求,您可以从该帖子中获得一些东西!!!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-03-17
      • 1970-01-01
      • 2018-02-06
      • 2016-05-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多