1、打开 /ueditor/php/config.json 配置文件,在 上传图片配置项 插入 imageCompressSide 参数:
"imageCompressSide" : 1,/*等比压缩的基准,0为按照最长边,1为按照宽度,2为按照高度 1.4.3官方版本无此参数,自行添加 */
更改后的配置文件:
/* 上传图片配置项 */
"imageActionName": "uploadimage", /* 执行上传图片的action名称 */
"imageFieldName": "upfile", /* 提交的图片表单名称 */
"imageMaxSize": 20480000, /* 上传大小限制,单位B */
"imageAllowFiles": [".png", ".jpg", ".jpeg", ".gif", ".bmp"], /* 上传图片格式显示 */
"imageCompressEnable": true, /* 是否压缩图片,默认是true */
"imageCompressBorder": 780, /* 图片压缩最长边限制 */
"imageCompressSide" : 1,/*等比压缩的基准,0为按照最长边,1为按照宽度,2为按照高度 1.4.3官方版本无此参数,自行添加 */
"imageInsertAlign": "none", /* 插入的图片浮动方式 */
"imageUrlPrefix": "", /* 图片访问路径前缀 */
"imagePathFormat": "/Upload/image/ueditor/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
2、然后 打开 ueditor/dialogs/image/image.js 文件,大概在 378行 找到以下代码:
compress: editor.getOpt('imageCompressEnable') ? {
width: imageCompressBorder,
height: imageCompressBorder,
// 图片质量,只有type为`image/jpeg`的时候才有效。
quality: 90,
// 是否允许放大,如果想要生成小图的时候不失真,此选项应该设置为false.
allowMagnify: false,
// 是否允许裁剪。
crop: false,
// 是否保留头部meta信息。
preserveHeaders: true
}:false
将width 和 height 改为:
width: '1' == editor.getOpt('imageCompressSide') ? imageCompressBorder : 99999,
height: '2' == editor.getOpt('imageCompressSide') ? imageCompressBorder : 99999,
正常来说 这样再上传图片时,会自动判断按照什么边为基准进行压缩图片,如果发现 只能压缩 jpg 格式,其他格式不能压缩 ,可以继续往下看
3、找到 ueditor/third-party/webuploader/webuploader.min.js 文件, 然后搜索 ~"image/jpeg ,将内容替换为(其实就是将需要压缩的格式 补充上去):
!~"image/jpeg,image/png,image/bmp"
如下图: