微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用PHP在服务器上复制2000个图像真的很快?

我有一个 PHP文件(网站上的功能) – 允许用户从他的帐户导入另一个网站上的数据.
每次他想要导入数据时,我还需要从那里复制很多图像.
例如. 500张照片,每张300-500Kb是最小的.对于一个用户来说,这个数字很容易成为2000个图像.

每张图片的步骤如下:

>获取图片网址
>从URL制作图像(使用imagecreatefromjpeg和其他人)
>将其保存在我的服务器上(使用imagejpeg,imagepng等功能)

执行此代码已经花了很长时间(超过8分钟).
我意识到它有很多数据,但还有另一种可能的方法吗?
也许在背景上运行复制,或同时复制许多照片.
只是想知道是否有任何专门为此设计的技术,我不知道.
或者除了将图像外包工作到一些图像托管服务器并且只保留缩略图之外别无他法.

谢谢.

解决方法

这里没有太多的信息.正在使用什么操作系统? “远程”如何是源站点图片的格式是什么?

如果另一个站点是远程站点(即另一个托管公司),那么您将遇到的主要问题是源服务器可以将数据传输到您的计算机的速度.

然而,一个大问题是“目前图像的格式是什么?”.如果图像已经是JPEG,则再次检索然后再转换为JPEG将降低质量(尽管略有下降).更好的办法是直接复制图像文件.这将消除PHP应用程序重新编码JPEG所需的时间.问问自己 – 你真的需要转换图像吗?

根据您可用的操作系统命令,您最好调用处理传输的应用程序(例如Linux中的wget).我已经使用wget将文件从远程服务器检索到本地服务器,并且运行起来并不困难.

请记住 – 您转移的步骤越多,所需的时间就越长.目前,你有:

>检索
>转换
>写作

全部由PHP处理(可能从最慢到最快)

源主机是否为客户提供存档或导出工具?如果是这样,那可以用来大量传输文件吗?

尽可能多地利用PHP将使该过程更快.调用系统函数(例如,wget,ftp,ssh,imagemagick等)会使事情变得更快(在PHP和Apache之外)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐