Toast UI Editor上传图片到Flask

Toast UI Editor国内文档几乎搜不到,国外文档也写得不是特别项目,没有太多举例的demo。一开始选择使用这个就是因为UI好看。不过看看源码把思路滤清了。

他会给把图片转成Base64,到时候发表单直接丢过去就行了,blob这个参数能拿到一些其他信息,可以根据自己的需求进行提取。log一下就能看到结构

通过官网找到钩子函数

定义钩子函数 hooks - > addImageBlobHook

js 复制代码
let editor = new toastui.Editor({
     el: document.querySelector('#editor'),
     initialEditType: 'markdown', // 初始编辑类型,这里是 Markdown
     previewStyle: 'vertical', // 预览样式,可以是 'tab', 'vertical'
     height: '700px', // 编辑器高度,
     language: 'zh-CN',   // 设置语言为中文

     hooks: {
         addImageBlobHook: (blob, callback) => {
             uploadImage(blob, function (imageUrl) {
                 callback(imageUrl); // 将链接传递给编辑器
             }, function (error) {
                 console.error('图片上传失败:', error);
             });
         },
     }
 });

定义上传图片的方法

js 复制代码
function uploadImage(imageBlob, successCallback, errorCallback) {
                // 实现图片上传逻辑,使用 jQuery 的 AJAX
                $.ajax({
                    url: '{{ url_for('admin.upload') }}',
                    type: 'POST',
                    data: imageBlob,
                    processData: false,
                    contentType: false,
                    success: function (data) {
                        if (data.code === 0) {
                            successCallback(data.data.url);
                        } else {
                            errorCallback('图片上传失败');
                        }
                    },
                    error: function () {
                        errorCallback('图片上传失败');
                    }
                });
            }

Flask路由

python 复制代码
@bp.route('/upload', methods=['post'])
def upload():
    """
    文章管理-资源上传API
    :return:
    """
    file = request.data
    filename = 'uploaded_image.png'
    with open(filename, 'wb') as f:
        f.write(file)
    print(file)
    return 'ok'

效果

相关推荐
玲娜贝儿--努力学习买大鸡腿版32 分钟前
推荐系统---AUC计算
人工智能·python·机器学习
蓝倾97635 分钟前
小红书获取关键词列表API接口详解
开发语言·数据库·python
是小崔啊37 分钟前
【爬虫】03 - 爬虫的基本数据存储
网络·爬虫·python·beautifulsoup
嘉鑫的程序员1 小时前
ESP32-IDF LVGL UI 设计工具的使用
ui
java1234_小锋1 小时前
【NLP舆情分析】基于python微博舆情分析可视化系统(flask+pandas+echarts) 视频教程 - 基于jieba实现词频统计
python·自然语言处理·flask
星期天要睡觉2 小时前
python网络爬虫(第一章/共三章:网络爬虫库、robots.txt规则(防止犯法)、查看获取网页源代码)
开发语言·爬虫·python
Gyoku Mint2 小时前
深度学习×第10卷:她用一块小滤镜,在图像中找到你
人工智能·python·深度学习·神经网络·opencv·算法·cnn
测试老哥2 小时前
使用Jmeter进行http接口性能测试
自动化测试·软件测试·python·测试工具·jmeter·http·测试用例
计算机毕业设计指导3 小时前
基于 Django + 协同过滤算法的电影推荐系统设计与实现
python·算法·django
MinggeQingchun4 小时前
Python - 数据分析三剑客之Pandas
python·pandas