如何从 CKEditor 5 getData 方法获取 img url?
How to get the img url from CKEditor 5 getData method?
我在CKEditor 5中使用自己的UploadAdapter上传img。
实现方法上传如下,如the official guideline描述
upload() {
const data = new FormData();
data.append('file', this.loader.file);
data.append('token', this.token);
data.append('key', guid() + '.jpg');
return new Promise((resolve, reject) => {
axios({
url: '{my server url}',
method: 'post',
data,
headers: {
'X-Requested-With': 'XMLHttpRequest',
'Content-Type': 'application/x-www-form-urlencoded'
},
withCredentials: false
}).then(res => {
var resData = eval("("+res.data+")");
resData.url = 'my own domain' + resData.url;
resolve(resData);
}).catch(error => {
reject(error)
});
});
}
我的服务器响应是这样的:{uploaded: true
url: "***.jpg"}
上面的代码运行良好。
CKEditor可以获取response.I 可以在编辑器中看到img:
但是,查看 img html 代码不是我期望的,它的 src 属性具有 base64,否则我给定的 url 参数:
<img src="data:image/jpeg;base64,/9j/4*********">
而小编的getData方法获取不到img数据:
upload() {
const data = new FormData();
data.append('file', this.loader.file);
data.append('token', this.token);
data.append('key', guid() + '.jpg');
return new Promise((resolve, reject) => {
axios({
url: '{my server url}',
method: 'post',
data,
headers: {
'X-Requested-With': 'XMLHttpRequest',
'Content-Type': 'application/x-www-form-urlencoded'
},
withCredentials: false
}).then(res => {
var resData = res.data;
resData.default = resData.url; <----------- https://ckeditor.com/docs/ckeditor5/latest/api/module_upload_filerepository-UploadAdapter.html#function-upload
resolve(resData);
}).catch(error => {
reject(error)
});
});
}
我在CKEditor 5中使用自己的UploadAdapter上传img。 实现方法上传如下,如the official guideline描述
upload() {
const data = new FormData();
data.append('file', this.loader.file);
data.append('token', this.token);
data.append('key', guid() + '.jpg');
return new Promise((resolve, reject) => {
axios({
url: '{my server url}',
method: 'post',
data,
headers: {
'X-Requested-With': 'XMLHttpRequest',
'Content-Type': 'application/x-www-form-urlencoded'
},
withCredentials: false
}).then(res => {
var resData = eval("("+res.data+")");
resData.url = 'my own domain' + resData.url;
resolve(resData);
}).catch(error => {
reject(error)
});
});
}
我的服务器响应是这样的:{uploaded: true url: "***.jpg"} 上面的代码运行良好。 CKEditor可以获取response.I 可以在编辑器中看到img:
但是,查看 img html 代码不是我期望的,它的 src 属性具有 base64,否则我给定的 url 参数:
<img src="data:image/jpeg;base64,/9j/4*********">
而小编的getData方法获取不到img数据:
upload() {
const data = new FormData();
data.append('file', this.loader.file);
data.append('token', this.token);
data.append('key', guid() + '.jpg');
return new Promise((resolve, reject) => {
axios({
url: '{my server url}',
method: 'post',
data,
headers: {
'X-Requested-With': 'XMLHttpRequest',
'Content-Type': 'application/x-www-form-urlencoded'
},
withCredentials: false
}).then(res => {
var resData = res.data;
resData.default = resData.url; <----------- https://ckeditor.com/docs/ckeditor5/latest/api/module_upload_filerepository-UploadAdapter.html#function-upload
resolve(resData);
}).catch(error => {
reject(error)
});
});
}