图像上传和处理,服务器端还是客户端?

时间:2011-12-02 01:03:47

标签: php javascript jquery image-processing

我的网站需要平方图像。目前我有一个非常基本的图像上传工具。上传图像并在服务器上以PHP格式调整大小和平方。这导致以下问题: - 它使用了大量的服务器资源 - 图像通常不完美 - 没有任何进度指示,特别是当他们尝试上传大图像时出现问题

我现在开始考虑植入一个全新的图片上传页面。你会推荐什么,继续用PHP处理。我想也许我可以做客户端(我们使用jQuery),有没有任何好的现有库?这个客户端是一个好主意。什么是好的PHP / javascript工作流程?

3 个答案:

答案 0 :(得分:1)

坚持尝试/真实的服务器端解决方案,尝试使用ImageMagick进行调整大小,而不是使用php的内置图像处理。

根据我们的经验,它的效果会更好。

答案 1 :(得分:0)

你可以尝试使用像JCrop这样的jQuery裁剪插件,它支持比率锁定以确保平方图像。

请记住,客户端上没有任何内容是100%安全的,因此任何验证也必须在服务器端重复。这可能意味着检查图像的宽度/高度,并在必要时再次在PHP中裁剪。

答案 2 :(得分:0)

如果您正在谈论更改实际图像数据,您不能完全依赖客户端解决方案,并非所有浏览器都具备您需要的功能。对于那些在js中无法执行此操作的浏览器,您可以回退到Flash,但由于您需要两个上传器,因此开始变得非常快。

我建议在支持它的浏览器中执行此操作,并依赖服务器端解决方案。您可以通过在队列中处理资源来分散资源,而不是在上传资源时立即处理,如果问题仍然存在问题。

Canvas是在现代浏览器上执行此操作的好方法,您不需要插件。在这里查看如何抓取图像数据进行上传。

https://developer.mozilla.org/En/HTML/Canvas/Pixel_manipulation_with_canvas

这是一个lib:http://www.nihilogic.dk/labs/canvas2image/