PHP图像/文件上传:交叉浏览器、多个文件、拖放;滴

PHP图像/文件上传:交叉浏览器、多个文件、拖放;滴,php,file-upload,drag-and-drop,Php,File Upload,Drag And Drop,生活在2012年,我没想到使用PHP上传图像会造成这么多困难 我的要求是: 多文件上传 跨浏览器功能 考虑安全问题 取决于最小可能的附加组件或扩展 支持拖放(至少会很好) 对我来说,可用的选项似乎是: 仅使用PHP(如GD库)进行简单的单文件上传(或多个单文件输入,但仍需手动选择每个图像) (+)优点:完全跨浏览器功能,既不依赖flash,也不依赖javascript,也不依赖html5,也不依赖任何附加组件等,最大程度的可定制性 (-)缺点:糟糕的用户体验,不支持多个文件,没有拖放等 折衷

生活在2012年,我没想到使用PHP上传图像会造成这么多困难

我的要求是:

  • 多文件上传
  • 跨浏览器功能
  • 考虑安全问题
  • 取决于最小可能的附加组件或扩展
  • 支持拖放(至少会很好)
对我来说,可用的选项似乎是:

  • 仅使用PHP(如GD库)进行简单的单文件上传(或多个单文件输入,但仍需手动选择每个图像)

    (+)优点:完全跨浏览器功能,既不依赖flash,也不依赖javascript,也不依赖html5,也不依赖任何附加组件等,最大程度的可定制性

    (-)缺点:糟糕的用户体验,不支持多个文件,没有拖放等

  • 折衷,例如使用jquery

    正如许多帖子和其他网站所宣传的那样,请参见此链接,例如:

    (+)优点:支持多个文件上传,甚至拖放,除此之外,大多数情况下只支持FireFox、Chrome、Safari的其他优秀功能(详情请参见链接)

    ()

  • HTML5:浏览器市场份额似乎不允许仅依赖HTML5,但

  • Flash:我发现许多不同的基于Flash的上传程序,但在测试时,许多都没有实现他们所声称的功能(例如,选择多个文件和跨浏览器功能)。我发现两个例子很有用:

    http://code.google.com/p/swfupload/ (请参见演示)

    (+)优点:上面提到的支持多文件上传的优点

    ()

  • 然而,我发现一些声明,例如google docs使用的多文件上传不是基于flash的,但仍然在IE中工作。有人知道他们是怎么做到的吗

    我的其他问题是:我是否监督了一个机会?这些都是更好的选择吗?在IE(至少是v8)中,是否也有任何基于flash的方法可以至少上传多个文件?你们是怎么做到的?或者它真的在等待和希望HTML5的突破,现在有5个不同的上传程序,每个都针对一个特殊的浏览器/附加组件可用性进行了优化


    提前非常感谢

    看来你的研究做得相当彻底。几周前我发现了一个类似的难题。至于谷歌文档参考,我真的很想看到,因为我从来没有发现过这样的东西。就个人而言,如果你的网站与年轻受众打交道,我建议你使用jQuery选项,并向IE用户显示Firefox或Chrome浏览器推荐。为更可能出现在IE上的老年人群使用Flash


    不幸的是,我发现这里没有真正的赢家。但至少使用jQuery选项,您可以避免使用Flash,并且IE在未来版本中将有可能使用它。随着HTML5的出现,Flash正在迅速消失(并且很好地摆脱了它)。现在,如果这只发生在IE上,我是说,拜托,为什么即使在IE9中,他们在成为标准投诉者方面也没有接近他们的竞争对手???这太荒谬了。

    看来这是唯一的选择。。。就像你说的,荒谬不是要反驳你的回答,但我认为这不应该被标记为答案。很多人都会对这个常见问题的解决方案感兴趣,正如你所说,谷歌似乎有他们使用的解决方案。我很想看看是否有人有建议。我想指出的是,谷歌似乎真的很擅长在需要的地方安静地集成flash,以获得良好的用户效果。如果谷歌发布白皮书,说明他们是如何完成这些工作的,那就太好了。但我同意我的答案不是很好的答案。更多的是指出事物的真实性。我希望我能给你更多。为你的第一行问题竖起大拇指!