解决summernote打开本地文件夹慢的问题

开发项目时,遇到summernote,打开本地文件夹时,非常的慢,以下是解决办法:

找到summernote.min.js

accept="image/*"

替换为:

accept="image/jpg,image/jpeg,image/webp,image/png,image/svg,image/gif"
修改位置部分

如果不行,请清除一下浏览器缓存

以下是实际开发效果图

项目效果图

----------------------------------------------我是分割线------------------------------------------

附summernote+springboot整合代码:
html需要引入(这个就自己下载喏)

    <link href="../../css/plugins/summernote/summernote.css" rel="stylesheet" />
    <link href="../../css/plugins/summernote/summernote-bs3.css" rel="stylesheet" />
    <script src="../../js/plugins/summernote/summernote.min.js" type="text/javascript"></script>
    <script src="../../js/plugins/summernote/summernote-zh-CN.js" type="text/javascript"></script>

内容区(我相信css样式难不倒聪明的你)

<div class="wrapper wrapper-content">
    <div class="row">
        <div class="col-sm-12" style="width:550px">
            <div class="ibox float-e-margins">
                <div class="ibox-title">
                    <h1>公司简介</h1>
                    <button id="cancel" class="btn btn-warning btn-xs m-l-sm" onclick="cancelEdit()" type="button">放弃本次编辑</button>
                    <button id="edit" class="btn btn-primary btn-xs" onclick="profileEdit()" type="button">编辑</button>
                    <button id="save" class="btn btn-primary  btn-xs" onclick="profileSave()" type="button">保存</button>
                </div>
                <div class="ibox-content no-padding" id="eg">
                    <div id="summernote">
                        <h3>亲爱的用户,您好:</h3>
                        <br/>
                        <p>&nbsp;&nbsp;&nbsp;&nbsp;开始编辑您的内容吧.</p>
                        <br/>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

相关js函数(提示弹出框用的是 sweetAlert,自行百度)

$(document).ready(function() {
    $('#summernote').summernote({
        lang: 'zh-CN', // default: 'en-US'
        focus:true,
        onImageUpload: function(files, editor, welEditable) {
            sendFile(files[0],editor,welEditable);
        }
    });
});

function sendFile(file, editor, welEditable){
    var filename = false;
    try {
        filename = file['name'];
    } catch (e) {
        filename = false;
    }
    if (!filename) {
        $(".note-alarm").remove();
    }
    //以上防止在图片在编辑器内拖拽引发第二次上传导致的提示错误
    var ext = filename.substr(filename.lastIndexOf("."));
    ext = ext.toUpperCase();
    var timestamp = new Date().getTime();
    var name = timestamp+"_"+$("#summernote").attr('aid')+ext;
    //name是文件名,自己随意定义,aid是我自己增加的属性用于区分文件用户
    data = new FormData();
    data.append("file", file);

    $.ajax({
        data: data,
        type: "POST",
        url: "/logistics/common/picSave", //图片上传出来的url,返回的是图片上传后的路径,http格式
        cache: false,
        contentType: false,
        processData: false,
        success: function(url) {
            //data是返回的hash,key之类的值,key是定义的文件名,把图片放到编辑框中
            editor.insertImage(welEditable, url);
//            $('#summernote').summernote('insertImage', url); //这种方式有问题
        },
        error: function(){
            swal({
                type:"warning",
                title:"",
                text: "上传失败",
                confirmButtonText: '知道的啦'
            });
        }
    });
}

//编辑, 初始化组件, 加上图片上传初始化
function profileEdit(){
    $("#eg").addClass("no-padding");
    $('#summernote').summernote({
        lang: 'zh-CN', // default: 'en-US'
        focus:true,
        onImageUpload: function(files, editor, welEditable) {
            sendFile(files[0],editor,welEditable);
        }
    });
}

//保存, 销毁组件
function profileSave(){
    data = new FormData();
    $("#eg").removeClass("no-padding");
    var aHTML = $('#summernote').code();//获取内容
    data.append("content", aHTML);
    $('#summernote').destroy(); //销毁
    $.ajax({
        data: data,
        type: "POST",
        url: "/company/picSave", //图片上传出来的url,返回的是图片上传后的路径,http格式
        cache: false,
        contentType: false,
        processData: false,
        success: function(res) {
            if (res.code === "0"){
                swal({
                    type:"success",
                    title:"",
                    text: res.msg,
                    confirmButtonText: '那必须的'
                });
            } else {
                swal({
                    type:"warning",
                    title:"",
                    text: "啊哦,保存失败",
                    confirmButtonText: '朕知道了'
                });
            }

        }
    });
}

//取消, 销毁组件
function cancelEdit(){
    $("#eg").removeClass("no-padding");
    $('#summernote').destroy(); //销毁
    self.location.reload(); //取消时重新刷新界面
}

springboot后台参考代码(如果有需要对图片进行压缩或者加水印需求的同学请自行百度哦):
类上的注释使用:@RestController

 /**
     * @param file
     * @return
     * @throws IOException
     */
    @RequestMapping(value = "/common/picSave", produces = "text/html;charset=UTF-8", method = RequestMethod.POST)
    @ResponseBody
    public String commonPicSave(@RequestParam("file") MultipartFile file) throws IOException {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy_MM");
        String file_name = sdf.format(new Date());
        String fileName;
        String suffixName;
        OutputStream out = null;
        InputStream in = null;
        String _path = "";
        String path = "c:\\myPath"+ file_name + "/";
        if (!file.isEmpty()) {
            fileName = file.getOriginalFilename();
            suffixName = fileName.substring(fileName.lastIndexOf("."));
            fileName = UUID.randomUUID() + "_" + new Random().nextInt(10000) + suffixName; //重新命名
            // 检测是否存在目录
            String filePath = path + fileName;
            File dest = new File(filePath);
            if (!dest.getParentFile().exists()) {
                dest.getParentFile().mkdirs();
            }
            out = new FileOutputStream(new File(path, fileName));
            in = file.getInputStream();
            int length;
            byte[] buf = new byte[1024];
            while ((length = in.read(buf)) != -1) {
                out.write(buf, 0, length);
            }
            in.close();
            out.close();
            _path = type + "/" + file_name + "/" + fileName;
            ShiroUtils.setSessionAttribute(type, "/" + _path); // 将图片放到session中
            System.out.println("/" + _path);
        }
        return baseUrl + _path;
    }

开发中遇到的问题,分享一下,如果对您有帮助,那便是最好;如果有错,还望多多指出

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,324评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,303评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,192评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,555评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,569评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,566评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,927评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,583评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,827评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,590评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,669评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,365评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,941评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,928评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,159评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,880评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,399评论 2 342

推荐阅读更多精彩内容