浏览器端预上传图像缩放和裁剪的可靠性和安全性



我喜欢给网站的用户在上传之前裁剪图像的能力。这对于那些不知道图像处理工具的人来说很方便,并且可以大大减少上传时间,因为上传的图像与通常用作源的数码相机图像相比相当小。

我想使用HTML5文件API, img-Tag, canvas-Element和FormData API来解码,操作和上传图像。

我想知道这是否涉及安全性和可靠性。加载大图像可能会破坏客户端DOM或JavaScript,并导致页面或整个浏览器崩溃。你能期望JavaScript处理的最大的图像是什么?加载并调整大小)?浏览器是否能识别任何格式,除了JPG和PNG(如TIFF) ?

图片文件中的恶意代码可能以某种方式访问JavaScript并滥用用户的会话凭据。这有实际风险吗?

我也有这个问题一年前,所以我决定创建我自己的PHP和jquery脚本,将做裁剪和调整大小与客户端和服务器端验证,所以如果用户使用任何技巧,服务器将选择默认选项,而不是客户端:

那么我们怎么做呢首先我们需要客户端表单来裁剪和调整大小等等......所以我们需要jquery有一个很好的插件:jquery image are select

,然后我们需要检索裁剪值,以便服务器可以确保用户没有欺骗或发送垃圾邮件或黑客攻击。

一个优秀的PHP库是PHP gd库,它应该带有最新的PHP版本,但你可能需要启用扩展,只是在谷歌搜索,你会发现如何启用它们。

现在gd库将捕获轴并将其裁剪到服务器端而不是客户端。客户端将只提供应该裁剪多少的信息,服务器将完成这项工作:)

这是我一年前写的一个脚本。它有点乱(html和css)。图片裁剪和上传工具PHP jquery

注意:您需要启用gd扩展才能完成此工作,请在本地服务器上尝试。启用扩展后,您需要重新启动服务器并运行脚本。它应该运行出盒子,但告诉我,如果有什么不工作或错误:)

最新更新