React 富文本编辑器图片上传问题排查

使用小尺寸测试图片和测试文档。本指南针对 React 图片库示例及其 Express 服务;浏览器应用和服务器是两个独立进程。
下载 React 示例和 Express 示例。将它们解压为同级文件夹,把试用版编辑器文件加入 React 示例,然后按照各自的 README 安装依赖并启动。 React 示例 · Express 示例.
启动两个服务
在端口 5101 启动 Express 示例,在端口 5111 启动 React 示例。React 示例将以下路径代理到 Express。此代理仅用于开发;生产环境需要等效路由。
// /rte/ and /uploads/ go to the Express sample (node-express, port 5101).
// Keep the trailing slashes: "/rte" alone would also catch /rte-files.js.
proxy: {
"/rte/": "http://localhost:5101",
"/uploads/": "http://localhost:5101",
},检查请求
打开浏览器网络面板,分别测试插入、粘贴和拖放图片。没有请求时,确认上传处理脚本已加载,并检查是否运行了匹配的示例。data 地址表示图片嵌入了内容,并未上传。
示例发送 multipart 请求,其中包含 file 字段以及可选的 folder 字段。示例处理器要求状态 200 和 JSON 中的 url。这是示例协议,不代表所有自定义处理器都必须使用它。
测试服务器
使用真实测试图片直接请求接口。返回的文件名仅作示例;打开服务器实际返回的地址。不要在公开测试中使用客户图片。
curl -F "file=@photo.jpg" http://localhost:5101/rte/upload
{"url":"/uploads/photo-ce99c014.jpg"}
400 可能表示扩展名或文件内容验证失败。413 可能来自代理、Web 服务器或应用的大小限制。出现 401 或 403 时检查登录、CSRF 和文件夹权限。状态 200 的 HTML 登录页也不是成功上传。
检查保存后的图片
分别在编辑器页面和阅读页面打开返回的图片地址。如果出现 404,检查代理、地址前缀、静态文件服务和持久存储。保存并重新加载文档,检查保存的图片地址。blob 地址是临时的,data 地址表示内容已嵌入。不要为了显示图片而关闭内容清理。
寻求帮助
联系支持时提供编辑器版本、框架、操作、状态码和脱敏响应;删除令牌、Cookie、私有地址和文档内容。