wangEditor 之图片问题

本文详细介绍了wangEditor富文本编辑器的使用方法,特别聚焦于图片上传功能的实现过程,包括源码下载、JS文件引入及自定义配置,提供了一个解决图片上传显示问题的有效方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

吐糟一下先,这两天老见鬼。去他MA的见鬼的人生。

wangEditor 是一个不错的编辑器,倒腾了半天就是图片插入失败。

服务器都配好了,返回也是200图片也上传成功了,就是没效果,真的是–见鬼

好了不废话进入主题

大概用法

1、 在官网下在源码 http://www.wangeditor.com/

2、引入 wangEditor.min.js 文件

3、把这块粘贴上去,这样就能看到简单的效果了

欢迎使用 wangEditor 富文本编辑器

<script type="text/javascript" src="/wangEditor.min.js"></script>
<script type="text/javascript">
    var E = window.wangEditor
    var editor = new E('#editor')
    editor.create()
</script>

4、图片添加(错误的经历我就不说了,有兴趣可以试一试)

灵感来源:官网实例js
在这里插入图片描述

editor.customConfig.uploadImgShowBase64 = true

把这个放在 editor.create() 上面,完成,

全部代码

欢迎使用 wangEditor 富文本编辑器

<script type="text/javascript" src="/wangEditor.min.js"></script>
<script type="text/javascript">
    var E = window.wangEditor
    var editor = new E('#editor')
    editor.customConfig.uploadImgShowBase64 = true
    editor.create()
</script>

5、最后这个是按照bat64存储的

### WangEditor 富文本编辑器图片上传缩放问题解决方案 WangEditor 是一款功能强大的富文本编辑器,在实际开发过程中,可能会遇到图片上传时的尺寸调整或压缩问题。以下是针对该问题的具体分析与解决方案。 #### 1. 自定义图片上传逻辑 通过设置 `uploadImgServer` 和 `customInsertImg` 参数可以实现自定义图片上传行为。可以在服务端处理图片之前对其进行裁剪、压缩操作[^1]。 ```javascript const E = window.wangEditor; let editor = new E('#editor'); // 设置图片上传地址 editor.config.uploadImgServer = '/your/upload/url'; // 添自定义参数 editor.config.uploadImgHeaders = { token: 'xxx' // 可选,根据业务需求添请求头 }; // 处理返回数据并插入图片 editor.config.customInsertImg = function (result, insertFn) { const imgUrls = result.data.map(item => item.url); // 假设后端返回的是数组结构 imgUrls.forEach(url => insertFn(url)); // 插入每张图片 }; ``` #### 2. 后端控制图片大小 在 PHP 接口层面,可以通过图像处理库(如 GD 或 Imagick)对上传的图片进行预处理后再保存至目标路径[^3]。以下是一个简单的例子: ```php public function uploadImage() { $targetDir = './uploads/'; if (!is_dir($targetDir)) mkdir($targetDir); $file = $_FILES['file']; list($width, $height) = getimagesize($file['tmp_name']); // 如果宽度超过指定值,则按比例缩小 if ($width > 1920 || $height > 1080) { $newWidth = min(1920, $width); $ratio = $newWidth / $width; $newHeight = intval($height * $ratio); $imageResized = imagecreatetruecolor($newWidth, $newHeight); $sourceImage = imagecreatefromstring(file_get_contents($file['tmp_name'])); imagecopyresampled( $imageResized, $sourceImage, 0, 0, 0, 0, $newWidth, $newHeight, $width, $height ); ob_start(); imagejpeg($imageResized, null, 85); // 输出JPEG质量为85% $content = ob_get_clean(); file_put_contents($targetDir . basename($file['name']), $content); } else { move_uploaded_file($file['tmp_name'], $targetDir . basename($file['name'])); } echo json_encode(['url' => "/$targetDir/" . basename($file['name'])]); } ``` #### 3. 客户端限制文件大小和分辨率 为了减少不必要的大图上传压力,可在前端增校验机制来过滤不符合条件的图片[^4]。 ```javascript editor.config.onchange = function () {}; editor.config.uploadFileName = 'myFile'; // 文件字段名,默认为wangEditorH5File editor.config.maxFileSize = 2 * 1024 * 1024; // 单位字节,此处表示最大允许上传2MB的文件 editor.config.checkBeforeUploadImgs = async function (files) { let validFiles = []; files.forEach((file) => { const reader = new FileReader(); reader.onloadend = function () { const img = document.createElement('img'); img.src = reader.result; img.onload = function () { if (img.width >= 800 && img.height >= 600) { // 这里可以根据具体需求修改宽高阈值 validFiles.push(file); } }; }; reader.readAsDataURL(file); }); await sleep(500); // 等待异步载完成 return Promise.resolve(validFiles); }; function sleep(ms) { return new Promise(resolve => setTimeout(resolve, ms)); } ``` --- #### 总结 上述方法分别从客户端和服务端两个角度解决了 WangEditor图片上传过程中的缩放问题。通过合理配置前后端交互流程以及引入必要的第三方工具支持,能够有效提升用户体验的同时降低资源消耗风险。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值