2012-03-12 86 views
4

生活在2012我不认为使用PHP上传图片会造成很多困难。PHP的图像/文件上传:crossbrowser,多个文件,拖放?

我的要求是:

  • 多文件上传
  • 跨浏览器的功能
  • 考虑安全性依赖于尽可能少的附加功能或扩展
  • 支持拖拽&下降(问题
  • 会很好,至少)

选项可用似乎是对我说:

  1. 简单的单文件上传(或几个单一的文件输入,但你还是要手动选择每个图像)使用PHP(和如GD库)仅

    (+)优点:充分跨浏览器功能性的,不依赖于既不闪光灯,和JavaScript,也不HTML5,也没有任何附加功能等,最大可定制的

    ( - )缺点:由于不支持多个文件,所以不会拖动& drop等

  2. 妥协,使用eg jQuery的

    为促进对很多职位和其他网站,看到这个链接,如:http://blueimp.github.com/jQuery-File-Upload/

    (+)优点:支持多文件上传,甚至拖累,此外还有一些不错的功能,对于大多只有火狐,Chrome下降, Safari浏览器(见链接了解详细信息)

    ( - )缺点:只有单一选择文件,没有拖&下降的IE浏览器(由我自己在IE6,IE8测试)

  3. HTML5:浏览器市场份额似乎并不允许仅依赖于HTML5,仍然...

  4. Flash:我发现许多基于闪存的不同上传器,但是当测试时,许多不能完成他们声称的内容(例如,选择多个文件和跨浏览器功能)。两个例子,我发现有用:

    http://www.uploadify.com/demos/ http://code.google.com/p/swfupload/(参见http://demo.swfupload.org/v220/用于演示)

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

    ( - )缺点:不需要拖放,具体取决于Flash的添加,我不是安全专家,也不是非常熟悉flash,但swfupload的文档例如国家不能/不会检查上传的MIME类型,完全依靠检查的文件扩展名)

然而,我发现声明,例如谷歌文档使用多个文件上传不是基于Flash,但仍然在IE中工作。有没有人知道他们是如何做到的?

我的其他问题是:我监督一个机会吗?这些都是更好的选择吗?是否有任何非闪存的方式至少多个文件上传在IE(至少v8)上工作?你们怎么做?或者它真的在等待并期待HTML5的突破,现在有5个不同的上传器,每个上传器都针对特定的浏览器/可用性进行了优化?

非常感谢您提前!

+0

竖起大拇指(y)为您的第一个问题! – NullPointer 2014-05-13 10:01:22

回答

2

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

不幸的是,我找到的确实没有赢家。但至少在jQuery选项中,您可以避免使用Flash,并有可能在未来的版本中使用IE。随着HTML5闪存正在迅速消失(和很好的解决)。现在,如果这只会发生在IE浏览器。我的意思是说,即使在IE9中,他们甚至没有接近竞争对手的标准投诉?它只是荒谬的。

+0

真的好像这是唯一的选择...就像你说的,可笑! :) – Chris 2012-03-12 20:55:39

+1

不要敲你的回应pthurmond,但我认为这不应该被标记为答案。许多人会对这个常见问题的解决方案感兴趣,正如你所说,Google似乎有一个他们使用的解决方案。我很想看看其他人是否有建议。 – MgSam 2012-07-10 20:11:39

+0

我想指出,谷歌似乎确实很好地安静地整合了需要良好用户效果的闪存。如果谷歌公布他们如何完成这些东西的话,这将是很好的。但我同意我的答案不是很多答案。更多的是指出事物的真相。我希望我能给你更多。 – pthurmond 2012-07-26 20:29:57