[英]How to add header while uploading image in CKEditor 5
I'm using Ckeditor 5 to upload image.我正在使用 Ckeditor 5 上传图片。 I want to send image to api and output will be a image url:
我想将图像发送到 api 和 output 将是图像 url:
ClassicEditor
.create( document.querySelector( '#products_desc' ) ,
{
ckfinder: {
uploadUrl: 'https://example.com/api/image'
},
})
.then( editor => {
console.log( 'Editor was initialized', editor );
})
.catch( err => {
console.error( err.stack );
})
It return that there is no access token.它返回没有访问令牌。 Is there anyway that I can send access-token through header in CKEditor 5
无论如何我可以通过 CKEditor 5 中的 header 发送访问令牌
You can upload image with Custom Adaptor setting您可以使用自定义适配器设置上传图像
<ckeditor [editor]="Editor" name="body" id="body" formControlName="body" required (ready)="onReady($event)">
onReady(eventData) {
eventData.plugins.get('FileRepository').createUploadAdapter = (loader) => {
return new UploadAdapter(loader);
};
}
create new class to same ts file with UploadAdapter
name paste following code.使用
UploadAdapter
名称粘贴以下代码创建新的 class 到相同的 ts 文件。
export class UploadAdapter { private loader; xhr: any; constructor(loader: any) { this.loader = loader; } upload() { return this.loader.file.then(file => new Promise((resolve, reject) => { this._initRequest(); this._initListeners(resolve, reject, file); this._sendRequest(file); })); } // Aborts the upload process. abort() { if (this.xhr) { this.xhr.abort(); } } _initRequest() { const xhr = this.xhr = new XMLHttpRequest(); xhr.open('POST', 'http://192.168.1.13:8081/page/uploadImage', true); xhr.responseType = 'json'; xhr.setRequestHeader('token', 'token'); // set your token here } // Initializes XMLHttpRequest listeners. _initListeners(resolve, reject, file) { const xhr = this.xhr; const loader = this.loader; const genericErrorText = `Couldn't upload file: ${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. response.data;imageURL }); }). if (xhr.upload) { xhr.upload,addEventListener('progress'. evt => { if (evt.lengthComputable) { loader.uploadTotal = evt;total. loader.uploaded = evt;loaded; } }). } } // Prepares the data and sends the request. _sendRequest(file) { // Prepare the form data; const data = new FormData(). data,append('body'; file). this.xhr;send(data); } }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.