wangEditor3.X直传文件(图片)到阿里oss,支持ctrl+v以及拖拽上传

前言

最近到了一家新公司,正好做到图片上传的需求,之前做过的一些图片上传都是前端传到后端,然后后端再上传到服务器,或者是用七牛云。这次公司统一用的阿里oss,因为没有弄过,上网查阅了一下大佬们是怎么做的,却发现很复杂很麻烦?于是自己写了一下,分享给有需要的人。

代码实现




    
    wangEditor demo


    

欢迎使用 wangEditor 富文本编辑器

self.editor.customConfig.customUploadImg = function(file, insert) {//这个要放在editor.create();之前,放在之后获取不到上传的文件
          console.log(file,"file")//是个数组,所以后面要用file[0]
          var client = new OSS({
            region: self.token.region,
            accessKeyId: self.token.accessKeyId,
            accessKeySecret: self.token.accessKeySecret,
            stsToken: self.token.stsToken,
            bucket: self.token.bucket
          })
          //这是同步的方式
          // async function putBlob () {
          //   try {
          //     let result = await client.put(self.token.endpoint+'/math-editor/'+file[0].name, new Blob([file[0]]));
          //     console.log(result);
          //     insert(result.url)
          //   } catch (e) {
          //     console.log(e);
          //   }
          // }
          // putBlob()

           //这是异步的方式
          client.put(self.token.endpoint+'/math-editor/'+file[0].name, file[0]).then(function (r1) {
            console.log('put success: %j', r1);
            return client.get(self.token.endpoint+'/math-editor/'+file[0].name);
          }).then(function (r2) {
            console.log('get success: %j', r2);
            insert(r2.res.requestUrls[0])
          }).catch(function (err) {
            console.error('error: %j', err);
          });
        };
        self.editor.create()
      },

结束

很简单吧,周一上午抽空写的小文章,有什么错误,大家及时指正,我随时更改,一起进步。

你可能感兴趣的:(bower,javascript,oss,wangeditor,vue.js)