jquery在Chrome上获取输入文件值

发布于 2024-12-02 22:40:57 字数 624 浏览 1 评论 0原文

我尝试在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"/>

I try to get the upload value when the input field's change event occurs

But I get this value on Chrome,

C:\fakepath\winnie-the-pooh.jpg

So I split the \ and the the last item in the array.

jquery,

$("#upload").change(function(){

    var fragment = $("#upload").val();
    var array_fragment = fragment.split('\/');
    alert($(array_fragment).last()[0]);

});

But I still get C:\fakepath\winnie-the-pooh.jpg instead of winnie-the-pooh.jpg on Chrome.

How can I make it worked?

the html,

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

盛装女皇 2024-12-09 22:40:57

您需要在 \ 上进行拆分,而不是在 / 上进行拆分:

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

但理想情况下,您可以在其中任何一个上进行拆分。幸运的是,split 采用正则表达式:

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

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

You need to split on \, not /:

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

Ideally though, you'd split on either. Fortunately, split takes a regular expression:

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

That regex basically means "\ or /"—the pipe operator, |, is the "or", and the / characters at the start and end signify that a regular expression is in between.

草莓酥 2024-12-09 22:40:57

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

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

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

You do not need jQuery to operate with arrays. Also, the file path may not contain a slash, e.g. on Firefox. Consider this example:

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

This is better than wrapping an array with jQuery just to get its last element.

很糊涂小朋友 2024-12-09 22:40:57

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

根据您的要求,您可以从中得出一些东西邮政!!!

you can read my post i had asked months ago::
my question

based upon your requirements you can derive something from that post!!!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文