nuxt.js - 如何在ckeditor 5中将多个表单数据设置为uploadAdapter
问题描述
我通过 ckeditor upload-adapter 将图像文件发送到服务器,但它正在向服务器发送空数据。
我在 nuxt 中使用这个包:
https://github.com/igorxut/vue-ckeditor5
<ckeditor type="classic" v-model="form.description" :upload-adapter="UploadAdapter"></ckeditor>
UploadAdapter: function (loader) {
this.loader = loader
this.upload = () => {
const body = new FormData();
body.append('file', this.loader.file);
return fetch('http://localhost:8000/api/imageUpload', {
headers: {
'Content-Type': "multipart/form-data; charset=utf-8; boundary=" + Math.random().toString().substr(2),
'Accept': 'application/json'
},
body: body,
method: 'post'
})
.then(response => response.json())
.then(downloadUrl => {
return {
default: downloadUrl
}
})
.catch(error => {
console.log(error);
});
}
this.abort = () => {
console.log('Abort upload.')
}
}
当我单击图像上传时,它会触发 UploadAdapter 方法并尝试发送到服务器,但它只发送一个空表单。
解决方案
我制作了工作代码:
UploadAdapter: function(loader) {
this.loader = loader;
this.upload = () => {
return this.loader.file
.then(uploadedFile => {
return new Promise((resolve, reject) => {
const data = new FormData();
data.append('file', uploadedFile);
axios({
url: 'https://api.gr8peoples.com/api/imageUpload',
method: 'post',
data,
headers: {
'Content-Type': 'multipart/form-data;'
},
withCredentials: false
}).then(response => {
console.log(response.data.success)
if (response.data.success == true) {
resolve({
default: response.data.url
});
} else {
reject(response.data.message);
}
}).catch(response => {
reject('Upload failed');
});
});
});
}
this.abort = () => {
console.log('Abort upload.')
}
}
推荐阅读
- c++ - 从arrayfire中的两个一维数组的划分创建二维数组
- java - JPA在一列中仅选择一个参数并将其放入字符串中
- fiware-orion - Fiware-Device-Simulator Orion 可以处理 bool 类型的值吗?
- spfx - 如何使用 sp.web 获取文件元数据以及文件名本身?SPFX
- django - Django authlib MismatchingStateError on authorize_access_token
- python - python中相似矩阵的Networkx图
- drop-down-menu - Python3中带有硒的依赖下拉列表
- javascript - 有没有一种巧妙的方法来随机显示图像?
- php - php代码没有执行而是被下载
- python - 将具有秒数的列转换为人类可读的持续时间