登录  /  注册
首页 > web前端 > js教程 > 正文

kindeditor图片上传功能

一个新手
发布: 2018-05-16 13:33:27
原创
3969人浏览过

kindeditor是一款用javascript编写的开源在线html编辑器,主要用户是让用户在网站上获得可见即可得的编辑效果,开发人员可以用 kindeditor 把传统的多行文本输入框(textarea)替换为可视化的富文本输入框

使用

  1. 到官网下载 KindEditor 最新版本,解压后将所有文件拷贝到项目的static文件夹下。注意,可以根据需要删除以下目录:

  • asp - ASP程序

  • asp.net - ASP.NET程序

  • php - PHP程序

  • jsp - JSP程序

  • examples - 演示文件

  • HTML模板中需要显示富文本编辑器的位置添加<textarea></textarea>标签:

    <label for="article_body">文章内容</label><textarea id="article_body" name="article_body"></textarea>
    登录后复制
  • 添加脚本,引入KindEditor JS文件,为指定标签创建富文本编辑器。这里主要说使用KindEditor 上传图片时的必要参数:

    <script src="{% static &#39;kindeditor-4.1.10/kindeditor-all-min.js&#39; %}"></script><script>
        var options = {
            resizeType: 0,
            uploadJson: "/upload/", //指定图片上传的url路径,server端写一个视图来处理上传的图片
            extraFileUploadParams: {            "csrfmiddlewaretoken": "{{ csrf_token }}"
            }
        };
        KindEditor.create("#article_body", options); //为指定元素创建富文本编辑器</script>
    登录后复制

    说明:

    1. 图片上传要通过uploadJson参数指定上传的url路径

    2. extraFileUploadParams参数用于提交csrf验证

  • 图片的上传和预览流程:

    1. 在富文本编辑器中选择上传图片

    2. KindEditor 将图片通过AJAX的方式上传到服务器指定url

    3. 该url对应的视图函数保存图片,并返回包含图片服务器路径的json响应

    4. KindEditor 拿到响应的图片路径后,通过<img alt="kindeditor图片上传功能" >标签的src属性,显示预览图片

  • Django中的代码实现:

    from django.conf.urls import urlfrom app import views
    
    urlpatterns = [
        url(r&#39;^upload/$&#39;, views.upload_file, name=&#39;upload_file&#39;),
    
        url(r&#39;^media/(?P<path>.*)$&#39;, serve, {&#39;document_root&#39;: settings.MEDIA_ROOT}),  # 配置media路由]
    登录后复制
    def upload_file(request):
        # 拿到文件,保存在指定路径
        print(request.FILES) # {&#39;imgFile&#39;: [<InMemoryUploadedFile: QQ图片20170523192846.jpg (image/jpeg)>]}
        imgFile = request.FILES.get(&#39;imgFile&#39;)  # 拿到文件对象,imgFile.name, 拿到文件名
    
        with open(&#39;app01/media/upload/img/&#39;+imgFile.name,&#39;wb&#39;)as f:   # with open 无法创建文件夹,需要自己创建
            for chunk in imgFile.chunks():
                f.write(chunk)    # 返回json响应
        response = {        
        &#39;error&#39;: 0,        &#39;url&#39;: &#39;/media/upload/img/&#39;+imgFile.name        # 客户端拿到路径,才能预览图片; media在setting中配置了别名,这里只写media,客户端就可以找到路径,前面不需要加/app
        }    return HttpResponse(json.dumps(response))
    登录后复制

    说明:

    1. request.FILES中拿到图片对象

    2. imgFile.name拿到文件名

    3. 必须返回包含errorurl的json响应

    4. 定义保存图片的视图函数

    5. 配置media(参考博客)并定义路由

    以上就是kindeditor图片上传功能的详细内容,更多请关注php中文网其它相关文章!

    智能AI问答
    PHP中文网智能助手能迅速回答你的编程问题,提供实时的代码和解决方案,帮助你解决各种难题。不仅如此,它还能提供编程资源和学习指导,帮助你快速提升编程技能。无论你是初学者还是专业人士,AI智能助手都能成为你的可靠助手,助力你在编程领域取得更大的成就。
    来源:php中文网
    本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
    最新问题
    关于CSS思维导图的课件在哪? 课件
    凡人来自于2024-04-16 10:10:18
    热门教程
    更多>
    最新下载
    更多>
    网站特效
    网站源码
    网站素材
    前端模板
    关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
    php中文网:公益在线php培训,帮助PHP学习者快速成长!
    关注服务号 技术交流群
    PHP中文网订阅号
    每天精选资源文章推送
    PHP中文网APP
    随时随地碎片化学习
    PHP中文网抖音号
    发现有趣的

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