富文本编辑器前端图片直传oss

本文分享了使用Vue、Element UI和wangeditor搭建富文本编辑器的过程,包括前后端直传阿里云OSS的实现,以及解决过程中遇到的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用的wangeditor ,踩了一天的坑,终于OK

vue+element + wangeditor

npm i wangeditor 

<<template>

<div class='warp'>

 

<div id="editorElem" class="toolbar" ></div>

<div id="div2" class="text">

</div>

 

</div>

</template>>

<script>

import E from "wangeditor";

import { getOliInfo} from "../../api/api";

import axios from "axios";

 

export default {

name: "editor",

 

data() {

return {

aliyun: {},

editorContent: ""

};

},

 

methods: {

aliyun(){

//向后台发起请求获得accessid、policy等参数,并赋值给data中的定义的aliyun对象

}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

},

 

mounted() {

var that = this;

 

this.aliyunKey();//请求后台获得key host之类的信息,

var editor = new E("#editorElem","#div2");//第一个是操作栏,第二部分是富文本编辑区域,目的是为了css设置编辑区的高度

 

editor.customConfig.onchange = html => {

this.editorContent = html;

console.log(html)//这个值是富文本生成的值,要传给数据库

};

 

 

editor.customConfig.customUploadImg = function(file, insert) {//这个要放在editor.create();之前,放在之后获取不到上传的文件

var server = that.aliyun.host;

var ossData = new FormData();

var time = new Date().getTime();

var keyname = that.aliyun.dir + "/" + time + ".jpg";

ossData.append("key", keyname);

ossData.append("policy", that.aliyun.policy);

ossData.append("OSSAccessKeyId", that.aliyun.accessid);

ossData.append("success_action_status", 201);

ossData.append("signature", that.aliyun.signature);

console.log(file[0],file[0].name)

ossData.append("file", file[0], file[0].name);

//上一部分是直传oss 的格式,后面的参数为后端返回的一一对应,值得注意的是与element upload上传插件有所不同,得到的file是数组,upload是一个对象,里面的file也是一个对象,不能用...的方式获得,因此使用了file[0]

axios.post(server, ossData).then(res => {

var img = server + "/" + keyname;

//阿里云上传成功返回的是xml,为了得到https图片的地址使用拼接的方式得到img

console.log(img)

insert(img)//将https的图片插到富文本编辑器中

});

 

 

};

editor.create();

//总结起来,wangeditor 简单方便,前端直传减轻了服务器的压力,整体操作虽然遇到了很多问题,但是最终还是感觉代码挺简单,思路也比较清晰。获得file文件,调用上传方法,得到http地址图片放在富文本中,而上传方法要有

}

};

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值