将许多(2000+)图像上载到服务器的最佳实践

时间:2010-06-02 03:10:53

标签: php ruby-on-rails image

我对此有一般性质疑。

如果您有图库,有时人们需要一次上传1000张图片。最有可能的是,它将通过.zip文件完成。将此类内容上传到服务器的最佳方法是什么?很多时候,服务器有超时等需要考虑。我想知道我应该注意哪些事情以及处理大量图像上传的最佳方式是什么。

我猜你会允许用户上传一个zip文件(假设超时不会影响你),并且这个zip文件被上传到一个特定目录,我们假设在这种情况下为每个目录创建一个目录用户在系统中。然后,您将解压缩服务器上的目录并扫描用户的文件夹以查找包含.jpg或.png或.gif文件(等)的任何目录,然后将它们相应地导入到表中。我猜是用文件夹名称标记的。

我遇到什么样的服务器端问题?

我知道可能存在很多问题。即便是一般的想法也可以,所以我可以进一步研究。谢谢!

另外,我将使用Ruby on Rails进行编程,但我认为这个问题适用于任何语言。

5 个答案:

答案 0 :(得分:2)

没有理由不能使用Web应用程序来处理这种事情。有几个很好的组件对此有用:

  1. Uploadify(基于jquery / flash)
  2. plupload(来自moxiecode,tinymce人)
  3. 它们有用的原因是,在第一个实例中,它使用flash组件来处理上传,因此您可以从文件浏览器窗口中选择文件组(假设没有人会单独选择数千个图像。 。!),并且使用plupload,还支持拖放以及更多平台。

    一旦你的界面工作,服务器端的东西只需要能够处理单独的上传,将它们与某种用户帐户相关联,从那里它应该非常简单。

    关于服务器端问题,这确实是个大问题,取决于同时使用该应用程序的人数,图像大小,以及之后发生的任何处理。请记住,文件在脚本处理时保存在临时位置,并在完成时删除或由脚本复制到最终存储位置,因此空间/内存开销/超时可能是个问题。

    如果图像尺寸很大,比如raw或tif,那么这种东西仍然适用于分块上传,但实现某种FTP上传可能会更容易。这是一个模糊的问题,但在这里应该有很多让你去;)

答案 1 :(得分:1)

对于那些许多图像,它必须是一个严肃的应用程序..因此,你可以自由地建议在客户端上运行的软件(像雅虎邮件/ picassa那样),它将负责“管理”(网络)中断/恢复支持等)上传图像。

对于服务器端,您可以一次处理这些(假设您的客户端以这种方式发送它们)..因此保持简单。

答案 2 :(得分:1)

看一眼http://gallery.menalto.com
他们有一个打开的方法来将图片上传到画廊。 你可以选择适合你的。

答案 3 :(得分:1)

要么有客户端应用程序,要么有一些Ajax代码逐个发送图像,以防止超时。或者,如果这对公众不可用。 FTP仍然有效......

答案 4 :(得分:1)

我建议使用客户端应用程序(可能用AIR或Titanium编写)或告诉用户FTP是什么。

例如,deviantArt.com提供FTP作为付费用户的上传方法,并且效果非常好。

Flickr拥有它自己的应用程序。 “Flickr上传者”。