Safari HTML5多文件上传错误的任何变通方法?

Jo *_* E. 6 safari html5

经过数周的调整后,我终于放弃了.我无法在safari上修复我的多文件上传,这真的让我感到困扰,因为我的代码在其他浏览器上运行得非常完美,除了在safari上.然后我刚刚发现它不是我的代码有问题.它是一个Safari bug.Safari 5.1.+无法读取html5多重属性(或类似的东西).因此用户无法使用多重上传功能,但可以正确上传单个文件.

几个讨论这个问题的链接:

https://github.com/moxiecode/plupload/issues/363

safari中的文件输入大小问题,用于多个文件选择

似乎这个bug已经存在很长一段时间了.所以我想知道是否有一些可用的解决方法,你们当中有些人可能知道这一点?因为我找不到任何东西.我发现唯一可用的选项是不为Safari 5.1.+用户使用多个属性.你们有更好的想法吗?

UPDATE

Safari 5.1.7是Apple为Windows操作系统制作的最新版本.他们没有继续构建适用于Windows的Safari的当前版本.为我找到这个bug的修复程序是没有必要的,因为Real Safari用户已经更新到最新版本的浏览器(没有事实),只是为那些仍在使用这个过时版本的用户单独上传,而不是牺牲现代版本您的应用程序的功能.

Jef*_*ffz 1

这是一个古老的问题,但是......黑客类型的解决方法如下。

只需删除Safari的多个属性,将其变成MSIE<=9小兄弟(非XHR)即可。

其余浏览器不会受到影响。

当 Safari 最终解决问题时,您所要做的就是删除此 hack::code 并返回到标准输入代码。

这是标准输入示例:

<input class="fileupload-input" type="file" name="files[]" multiple />

jQuery 解决方案:

只需将其放置在页面上有文件输入标记的位置即可。

您可以在这里阅读更多内容:如何检测 Safari、Chrome、IE、Firefox 和 Opera 浏览器?

$(文档).ready(函数() {
    if (Object.prototype.toString.call(window.HTMLElement).indexOf('构造函数')>0);
         $('.fileupload-input').removeAttr("多个");
});

PHP解决方案

你需要一些代码来识别浏览器我使用了一个类,我在github(麻省理工学院)得到了一个类,在这里获取它: https: //github.com/gavroche/php-browser

$files = '<input class="fileupload-input" type="file" name="files[]" multiple />';
 if (Browser::getBrowser() === Browser::SAFARI) {
    $files = '<input class="fileupload-input" type="file" name="files[]" />';
 }
回显$文件

就这些。