CkEditor可以正常上传图片了
但是我想在输出内容的时候把src
中的主机域名都去掉
比如现在的输出是:
<figure class=\"image\"><img src=\"http://localhost:8091/upload-files/download?fileId=c87c411ec37342c6bb5830cea308079b\"></figure>
我希望的是
<figure class=\"image\"><img src=\"/upload-files/download?fileId=c87c411ec37342c6bb5830cea308079b\"></figure>
如何解决?
附图片上传代码:
function renderEditor(idSelector, e) {
ClassicEditor
.create(document.querySelector('#' + idSelector), {
language: 'zh-cn',
extraPlugins: [fileUploader]
}).then(nE => {
e[idSelector] = nE;
})
.catch(error => {
console.error(error);
});
}
function fileUploader(editor) {
editor.plugins.get('FileRepository').createUploadAdapter = (loader) => {
return new cusUploadAdapter(loader);
};
}
class cusUploadAdapter {
constructor(loader) {
this.loader = loader;
}
upload() {
return this.loader.file
.then(file => new Promise((resolve, reject) => {
this._initRequest();
this._initListeners(resolve, reject, file);
this._sendRequest(file);
}));
}
abort() {
if (this.xhr) {
this.xhr.abort();
}
}
_initRequest() {
const xhr = this.xhr = new XMLHttpRequest();
xhr.open('POST', net.apiPath + '/upload-files/upload', true);
xhr.responseType = 'json';
xhr.withCredentials = true;
}
_initListeners(resolve, reject, file) {
const xhr = this.xhr;
const loader = this.loader;
const genericErrorText = `上传图片失败: ${file.name}.`;
xhr.addEventListener('error', () => reject(genericErrorText));
xhr.addEventListener('abort', () => reject());
xhr.addEventListener('load', () => {
const response = xhr.response;
if (!response || response.error) {
return reject(response && response.error ? response.error.message : genericErrorText);
}
resolve({
default: net.apiPath + '/upload-files/download?fileId=' + response.bean.fileId
});
});
if (xhr.upload) {
xhr.upload.addEventListener('progress', evt => {
if (evt.lengthComputable) {
loader.uploadTotal = evt.total;
loader.uploaded = evt.loaded;
}
});
}
}
_sendRequest(file) {
const data = new FormData();
data.append('file', file);
this.xhr.send(data);
}
}
我只能用暴力替换了。。