PHP Image / Fileupload:crossbrowser,多个文件,拖放?

时间:2012-03-12 20:18:30

标签: php file-upload drag-and-drop multiple-files

生活在2012年我不认为使用PHP上传图片会导致很多困难。

我的要求是:

  • 多文件上传
  • 跨浏览器功能
  • 考虑安全问题
  • 取决于最少的附加内容或扩展程序
  • 支持拖放(至少会很好)

可供使用的选项似乎是我:

  1. 简单的单个文件上传(或几个单个文件输入,但您仍然必须手动选择每个图像)仅使用PHP(例如GD库)

    (+)优点:完全跨浏览器功能,不依赖于flash,javascript,也不依赖html5,也不添加任何附加功能等,最大限度的可自定义性

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

  2. 妥协,使用例如jquery的

    在许多帖子和其他网站上宣传,看到此链接,例如:http://blueimp.github.com/jQuery-File-Upload/

    (+)优点:支持多个文件上传甚至拖放除了其他不错的功能,主要是FireFox,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-Type上传并完全依赖于检查文件扩展名)

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

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

    非常感谢你!

1 个答案:

答案 0 :(得分:2)

看起来你的研究非常彻底。几个星期前我发现了一个类似的难题。至于Google Docs参考,我真的很想看到,因为我从来没有发现过这样的东西。就个人而言,如果您与网站的年轻受众打交道,我建议您使用jQuery选项并向IE用户显示Firefox或Chrome的浏览器推荐。 Go Flash适用于更有可能使用IE的老年人。

不幸的是,我找到的确没有赢家。但至少使用jQuery选项可以避免使用Flash,并且IE可能会在将来的版本中使用它。随着HTML5 Flash迅速消失(并且很好地消除)。现在,如果这只会发生在IE上。我的意思是,即使在IE9中他们甚至没有接近他们的竞争对手的标准投诉是怎么回事?这太荒谬了。