new LinwitDocEditor({
element: "#aiEditor",
image: {
allowBase64: true,
defaultSize: 350,
customMenuInvoke: (editor: LinwitDocEditor) => {
},
uploadUrl: "https://your-domain/image/upload",
uploadFormName: "image", //上传时的文件表单名称
uploadHeaders: {
"jwt": "xxxxx",
"other": "xxxx",
},
uploader: (file, uploadUrl, headers, formName) => {
//可自定义图片上传逻辑
},
uploaderEvent: {
onUploadBefore: (file, uploadUrl, headers) => {
//监听图片上传之前,此方法可以不用回任何内容,但若返回 false,则终止上传
},
onSuccess: (file, response) => {
//监听图片上传成功
//注意:
// 1、如果此方法返回 false,则图片不会被插入到编辑器
// 2、可以在这里返回一个新的 json 给编辑器
},
onFailed: (file, response) => {
//监听图片上传失败,或者返回的 json 信息不正确
},
onError: (file, error) => {
//监听图片上传错误,比如网络超时等
},
},
bubbleMenuItems: ["AlignLeft", "AlignCenter", "AlignRight", "delete"]
},
})
Object 或者 返回一个 Object 的方法( Function )。fetch 进行上传。图片上传成功后,要求服务器必须返回如下内容,其中 errorCode 必须为 0;
{
"errorCode": 0,
"data": {
"src": "http://your-domain.com/image.jpg",
"alt": "图片 alt"
}
}
若服务器返回的不是以上内容格式,我们可以通过配置 uploaderEvent 的 onSuccess 对数据进行二次处理,并按以上格式返回新的 json 内容。
在 data 中,除了可以返回 src、alt 以外,还可以返回如下内容,进一步指定图片的样式:
{
"errorCode": 0,
"data": {
"src": "http://your-domain.com/image.jpg",
"alt": "图片 alt",
"align": "center",
"width": "100%",
"height": "auto",
"class": "image-class",
"loading": true,
"data-src": "http://your-domain.com/image.jpg"
}
}
Typescript:
new LinwitDocEditor({
element: "#aiEditor",
image: {
uploadUrl: "https://your-domain/image/upload",
uploadHeaders: {
"jwt":"xxxxx",
"other":"xxxx",
},
uploader: (file: File, uploadUrl: string, headers: Record<string, any>, formName: string): Promise<Record<string, any>> => {
const formData = new FormData();
formData.append(formName, file);
return new Promise((resolve, reject) => {
fetch(uploadUrl, {
method: "post",
headers: {'Accept': 'application/json', ...headers},
body: formData,
}).then((resp) => resp.json())
.then(json => {
resolve(json);
}).catch((error) => {
reject(error);
})
});
}
},
})
Javascript:
new LinwitDocEditor({
element: "#aiEditor",
image: {
uploadUrl: "https://your-domain/image/upload",
uploadHeaders: {
"jwt":"xxxxx",
"other":"xxxx",
},
uploader: (file, uploadUrl, headers, formName) => {
const formData = new FormData();
formData.append(formName, file);
return new Promise((resolve, reject) => {
fetch(uploadUrl, {
method: "post",
headers: {'Accept': 'application/json', ...headers},
body: formData,
}).then((resp) => resp.json())
.then(json => {
resolve(json);
}).catch((error) => {
reject(error);
})
});
}
},
})