解决方法:
当用户要上传媒体文件时,系统将调用 handleImageUpload 函数来处理上传操作。
完整代码:
const [introduceContent, setIntroduceContent] = useState('');
const options = {
defaultValue: 18000, // 指定默认限制数,如不指定则为Infinity(无限)
};
BraftEditor.use(MaxeLngth(options));
const handleEditorChange = (editorContent: any) => {
const htmlContent = editorContent.toHTML();
setIntroduceContent(htmlContent);
};
//在上传时候将富文本的图像文件转换成链接。
const handleImageUpload = async (val: any) => {
const file = val.file
const fileFormData1 = new FormData();
fileFormData1.append('file', file);
fileFormData1.append('type', '1');
//将图像文件和一些其他数据一起发送到服务器
const img1: any = await UploadImg(fileFormData1);
//代码调用val.success方法,传递一个包含图像URL和元数据的对象作为参数,表示图像上传成功。
val.success({
url: img1.data.filePath,
meta: {
id: 'your_image_id',
alt: 'your_image_alt',
title: 'your_image_title',
},
});
}
return (
<>
<BraftEditor
style={{ border: '1px solid #DCDFE6' }}
maxLength={18000}
placeholder="请输入内容"
excludeControls={['emoji']}
onChange={handleEditorChange}
// defaultValue={BraftEditor.createEditorState(data?.description)}
media={{
uploadFn: handleImageUpload,
}}
/>
</>
)