【问题标题】:Handling photo resizing PHP处理照片大小调整 PHP
【发布时间】:2012-08-18 06:07:28
【问题描述】:

我有一个带有上传表单的应用程序,允许用户上传照片。可能有 1000 人在线,每个人都可以上传自己的照片。

我的问题是:我应该在上传后立即调整上传照片的大小,还是创建 cron,它会在晚上调整所有上传的照片的大小?

【问题讨论】:

  • 互联网从不睡觉。 ;)
  • 你能不能有一个每个人都使用的默认头像,直到他们的照片被处理?

标签: php file-upload


【解决方案1】:

在 PHP 中,调整照片大小并不是一个非常缓慢的过程,当然要等待服务器的资源(我猜图像的大小可能是一个因素 - 给定 10MB 以上的图像)。

我完全建议在上传后立即调整大小。这样做不会在凌晨 3 点或每当您的 cron 运行时建立队列,并且您还将受益于向刚刚上传它的用户显示调整大小的图像(可能是缩略图、半页大小等) - 漂亮用户体验中的“必须”。

【讨论】:

  • 图片大小限制为 5 MB,Imagick 不是一个选项,所有图片都将通过 GD 处理。
  • @Frees 很好——我通常使用imagecreatefrom* 方法——它们都使用GD;立即调整大小从来没有任何问题。
【解决方案2】:

cron 作业是一项极好的资产,因为您可以在凌晨 4 点运行它,因此您不会对服务器产生过多的负担。

但是,您的用户浏览器在 cron 作业完成之前下载该图像的情况如何? :( 想想你的用户,让服务器足够快以立即调整图片大小。另外,你可能也想考虑优化照片!

【讨论】:

    【解决方案3】:

    您可以为此使用 cron,但您的用户必须等待很长时间才能处理好图片。 我建议使用第二台服务器和一个等待列表,您可以在其中放置所有需要调整大小的图片。第二台服务器将图片逐个处理(1 分钟 crontab)并将它们放回第一台服务器。这样您的用户就不必等待这么长时间,并且您的第一台服务器不会因需要调整大小的图像而过载。

    如果您只想使用一台服务器,您可以添加一个 cron 并使用 nice、ionice 和 imagemagick 调整图片大小。

    在处理图像时,您可以为图像放置一个占位符,让访问者知道他们的图像正在被处理。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-06-07
      • 2017-01-27
      • 2015-07-24
      • 2014-02-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多