浏览器上传图片,如果图片过大,先压缩再上传,有什么js插件?

kanjiushi006
  • 1.6k

浏览器上传图片,如果图片过大,先压缩再上传,有什么js插件?
比如只能传小于2M的图片,那么,如果传的是大于2M的,就先压缩一下,压缩到2M以内,然后再上传。

回复
阅读 4.5k
2 个回答

自己写一个呗。不用二十分钟就能写好吧。

大概思路就是读取 File 对象看看大小,如果太大的话,建立一个 Canvas,用 drawImage 方法把图片缩放后画在 canvas 上;然后用 Canvas 对象的 toBlob 方法(Chrome 暂时不支持 toBlob 方法,不过 polyfill 很容易找)导出成 Blob,以便上传。

不过需要浏览器支持 Canvas、支持 XMLHttpRequest Level 2(以及 FormData)。如果需要兼容更老的浏览器的话,可以考虑 Flash。

你知道吗?

宣传栏