0

0

如何在 React 中自定义 Jodit 编辑器的图片上传逻辑以对接后端接口

聖光之護

聖光之護

发布时间:2026-02-02 22:09:18

|

797人浏览过

|

来源于php中文网

原创

如何在 React 中自定义 Jodit 编辑器的图片上传逻辑以对接后端接口

本文详解如何通过配置 jodit 的 `uploader` 选项,实现将本地图片自动上传至指定后端接口(如 `/files`),并正确插入返回的图片 url 到编辑器中,无需手动处理文件选择与 dom 插入。

Jodit 编辑器内置了灵活的文件上传机制,关键在于正确配置 config.uploader 对象。它接管从用户选择文件、构造请求、发送上传、解析响应到最终插入图片的全流程。你无需重写文件选择逻辑或手动调用 insertImage() —— 只需告诉 Jodit:上传地址在哪、数据怎么打包、成功响应长什么样、图片 URL 在哪取

以下是完整、可直接集成的 uploader 配置(已适配你的后端要求):

uploader: {
  insertImageAsBase64URI: false, // 禁用 base64,强制走 URL 插入
  imagesExtensions: ['jpg', 'jpeg', 'png', 'gif'], // 允许的图片格式
  withCredentials: false, // 如需携带 cookie 或 auth header,设为 true
  format: 'json', // 告知 Jodit 期望 JSON 响应
  method: 'POST',
  url: 'http://localhost:3000/files', // 你的后端上传接口
  headers: {
    // 注意:multipart/form-data 由浏览器自动设置 boundary,此处不要手动指定 Content-Type
  },
  prepareData: function (data) {
    // data 是 FormData 实例;this.file 是用户选中的 File 对象
    data.append('file', this.file);
    return data;
  },
  isSuccess: function (resp) {
    // 自定义判定逻辑:只要响应体有 data 字段(即字符串 URL),即视为成功
    return typeof resp === 'string' || (resp && typeof resp.data === 'string');
  },
  process: function (resp) {
    // 关键:将后端返回的纯字符串 URL 封装为 Jodit 识别的格式
    const url = typeof resp === 'string' ? resp : resp.data;
    return {
      files: [url], // 必须是数组,且第一个元素即为要插入的图片 URL
      path: '',
      baseurl: '',
      error: !url ? 1 : 0,
      msg: !url ? 'Upload failed' : ''
    };
  },
  defaultHandlerSuccess: function (data, resp) {
    const files = data.files || [];
    if (files.length > 0) {
      // 插入第一张图片,宽高可选(null 表示保持原始尺寸)
      this.selection.insertImage(files[0], null, 250);
    }
  },
  defaultHandlerError: function (resp) {
    const msg = typeof resp === 'string' ? resp : (resp.msg || 'Upload error');
    this.events.fire('errorPopup', this.i18n(msg));
  }
}

? 重要注意事项

AI封面生成器
AI封面生成器

专业的AI封面生成工具,支持小红书、公众号、小说、红包、视频封面等多种类型,一键生成高质量封面图片。

下载
  • ✅ 后端必须返回纯字符串 URL(如 "https://example.com/uploads/abc.jpg"),或兼容 { "data": "..." } 结构;
  • ❌ 不要在 headers 中手动设置 'Content-Type': 'multipart/form-data' —— 浏览器会自动添加带正确 boundary 的头,手动设置会导致请求失败;
  • ⚠️ 若后端需要认证(如 Bearer Token),请在 headers 中添加 Authorization 字段,并确保 withCredentials: true(若跨域);
  • ? prepareData 是唯一需要你干预的数据组装环节;process 负责“翻译”响应为 Jodit 内部格式;isSuccess 和 defaultHandlerSuccess 控制流程分支。

将上述 uploader 配置整合进你原有的 config 对象中,替换掉空的 uploader: {},即可立即生效。用户点击工具栏「图片」按钮或拖拽图片到编辑区时,Jodit 将自动完成上传与插入,体验无缝、专业。

最后提醒:务必在开发环境确认 CORS 配置允许 localhost:3000(前端)访问你的后端服务,否则请求会被浏览器拦截。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
登录token无效
登录token无效

登录token无效解决方法:1、检查token的有效期限,如果token已经过期,需要重新获取一个新的token;2、检查token的签名,如果签名不正确,需要重新获取一个新的token;3、检查密钥的正确性,如果密钥不正确,需要重新获取一个新的token;4、使用HTTPS协议传输token,建议使用HTTPS协议进行传输 ;5、使用双因素认证,双因素认证可以提高账户的安全性。

6247

2023.09.14

登录token无效怎么办
登录token无效怎么办

登录token无效的解决办法有检查Token是否过期、检查Token是否正确、检查Token是否被篡改、检查Token是否与用户匹配、清除缓存或Cookie、检查网络连接和服务器状态、重新登录或请求新的Token、联系技术支持或开发人员等。本专题为大家提供token相关的文章、下载、课程内容,供大家免费下载体验。

825

2023.09.14

token怎么获取
token怎么获取

获取token值的方法:1、小程序调用“wx.login()”获取 临时登录凭证code,并回传到开发者服务器;2、开发者服务器以code换取,用户唯一标识openid和会话密钥“session_key”。想了解更详细的内容,可以阅读本专题下面的文章。

1072

2023.12.21

token什么意思
token什么意思

token是一种用于表示用户权限、记录交易信息、支付虚拟货币的数字货币。可以用来在特定的网络上进行交易,用来购买或出售特定的虚拟货币,也可以用来支付特定的服务费用。想了解更多token什么意思的相关内容可以访问本专题下面的文章。

1414

2024.03.01

js 字符串转数组
js 字符串转数组

js字符串转数组的方法:1、使用“split()”方法;2、使用“Array.from()”方法;3、使用for循环遍历;4、使用“Array.split()”方法。本专题为大家提供js字符串转数组的相关的文章、下载、课程内容,供大家免费下载体验。

361

2023.08.03

js截取字符串的方法
js截取字符串的方法

js截取字符串的方法有substring()方法、substr()方法、slice()方法、split()方法和slice()方法。本专题为大家提供字符串相关的文章、下载、课程内容,供大家免费下载体验。

212

2023.09.04

java基础知识汇总
java基础知识汇总

java基础知识有Java的历史和特点、Java的开发环境、Java的基本数据类型、变量和常量、运算符和表达式、控制语句、数组和字符串等等知识点。想要知道更多关于java基础知识的朋友,请阅读本专题下面的的有关文章,欢迎大家来php中文网学习。

1505

2023.10.24

字符串介绍
字符串介绍

字符串是一种数据类型,它可以是任何文本,包括字母、数字、符号等。字符串可以由不同的字符组成,例如空格、标点符号、数字等。在编程中,字符串通常用引号括起来,如单引号、双引号或反引号。想了解更多字符串的相关内容,可以阅读本专题下面的文章。

625

2023.11.24

AO3官网入口与中文阅读设置 AO3网页版使用与访问
AO3官网入口与中文阅读设置 AO3网页版使用与访问

本专题围绕 Archive of Our Own(AO3)官网入口展开,系统整理 AO3 最新可用官网地址、网页版访问方式、正确打开链接的方法,并详细讲解 AO3 中文界面设置、阅读语言切换及基础使用流程,帮助用户稳定访问 AO3 官网,高效完成中文阅读与作品浏览。

89

2026.02.02

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
React 教程
React 教程

共58课时 | 4.5万人学习

国外Web开发全栈课程全集
国外Web开发全栈课程全集

共12课时 | 1.0万人学习

React核心原理新老生命周期精讲
React核心原理新老生命周期精讲

共12课时 | 1万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号