最近在开始一套开源ERP,其中有用到DropZone插件实现图片压缩,尝试了好几种方法,包括canvas和compressor.js,效果都不是太理想。最后,我仔细读了读DropZone官方文档,才发现其实它本身就支持图片压缩,并不需要其它外站组件。
官方文档:https://docs.dropzone.dev/configuration/basics/configuration-options
实现图片压缩和图片大小调整,使用内置的参数就可以,比如
Dropzone.options.myDropzone = {
url: '{% url 'uploadfile' %}', // 替换为你的上传接口地址
paramName: "file", // 上传参数名,根据你的后端接口要求调整
maxFilesize: 5, // 文件大小限制,单位MB
maxFiles: 2, // 限制最多上传文件
acceptedFiles: '.jpg, .jpeg, .png, .gif', // 接受的文件类型
resizeWidth: 1200,
//resizeHeight: 200,
resizeQuality: 0.8,
其中,resizeQuality代表压缩质量,resizeWidth是压缩后的宽,resizeHeight是压缩后的高,可以不用,这样图片会自动等比例压缩。