TinyMce的paste插件,限制粘贴的图片大小

1.通过image插件正常上传的图片可以在回调方法内限制图片大小。

效果:

 

代码:

tinymce.init({
    selector: '#tinydemo',
    plugins: 'image paste code link lists table preview  save',
    toolbar: 'image',
    height:500,
    language:'zh_CN',
    file_picker_types: 'image',
    paste_data_images: true,
    images_upload_handler: function (blobInfo, success, failure, progress) {
            var reader = new FileReader();
            var AllowImgFileSize = 2100000; //上传图片最大值(单位字节)( 2 M = 2097152 B )超过2M上传失败
            reader.readAsDataURL(blobInfo.blob());
            reader.onload = function () {
              if (AllowImgFileSize != 0 && AllowImgFileSize < reader.result.length) {
                    failure("上传失败,请上传不大于2M的图片!");
                    return;
                }else{
                  //执行上传操作
                 success(this.result);
                 alert(reader.result);
                }
            }
    }
});

2.通过paste插件直接粘贴过来的图片。

    问题:虽然粘贴来的经过images_upload_handler方法,会有报错信息,但是不能阻止图片上传,依然可以上传成功。

解决方案:

修改paste插件上传文件的代码   路径:tinymce\plugins\paste\plugin.min.js

 

 代码:

return new ge(function (e) {
    var t = P(r.getAsFile) ? r.getAsFile() : r, n = new window.FileReader;
    var AllowImgFileSize = 2100000; //上传图片最大值(单位字节)( 2 M = 2097152 B )超过2M上传失败
    n.onload = function () {
        if (AllowImgFileSize != 0 && AllowImgFileSize < n.result.length) {
            alert("上传失败,请上传不大于2M的图片!");
            return;
        }
        e({blob: t, uri: n.result})
    }, n.readAsDataURL(t)
})

 

效果:

 

小提示:

1.如何开启了paste插件,却不能复制粘贴图片的,可能是浏览器不支持,建议用谷歌。

2.更改后,好像限制的是所有上传的文件大小,不仅仅针对于图片。后续有其他个性化需求,可以再自行改造。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要禁用tinymce-vue的粘贴图片功能,可以使用以下步骤: 1. 在tinymce-vue的配置选项中设置paste_data_images为false,这将禁用从剪贴板中粘贴图片的功能。 2. 使用paste_preprocess选项来处理粘贴事件。在这个处理函数中,你可以检查粘贴内容是否包含图片,并将其替换为一个空字符串,从而禁用粘贴图片的功能。 以下是一个示例配置: ``` <template> <tinymce-vue v-model="content" :init="init" /> </template> <script> import tinymce from 'tinymce/tinymce' import 'tinymce/themes/silver' import 'tinymce/plugins/paste' import 'tinymce/plugins/link' import 'tinymce/plugins/image' import 'tinymce/plugins/code' export default { data() { return { content: '', init: { plugins: 'paste link image code', toolbar: 'undo redo | formatselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image | code', paste_data_images: false, paste_preprocess: (plugin, args) => { const { content } = args const imagesRegex = /<img.*?>/gi if (imagesRegex.test(content)) { args.content = content.replace(imagesRegex, '') } } } } } } </script> ``` 在这个示例中,我们在tinymce-vue的配置选项中设置了paste_data_images为false,从而禁用了粘贴图片的功能。我们还使用paste_preprocess选项来处理粘贴事件,并在处理函数中检查粘贴内容是否包含图片,并将其替换为一个空字符串,从而禁用粘贴图片的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值