多语言展示
当前在线:1425今日阅读:26今日分享:39

Django 整合富文本tiny_mce之图片上传

晚上散步回来就现在了,不想看书了随便写点东西吧!今天我们来看下Django框架下使用富文本tiny_mce的图片上传功能,来补充下前面两片关于富文本编辑器的博文;这个功能很实用的,只要开发博客类的网站大部分都会遇到,下面的就来看下详细的过程。
工具/原料
1

Python 2.7

2

djang 1.6.0

3

Tiny_mce

方法/步骤
1

一、引用必要的js文件    tiny_mce其实是一个很多小插件组成的插件,图片上传就是其中的一个插件,只不过其本身只支持网络图片上传,并不支持本地图片上传,因此就需要我们自己来自定义插件来实现上传的功能,其所在目录如下:/jscripts/tiny_mce/plugins/advimage,打开所在目录,在image.htm文件中引入以下脚本文件:

2

二、编写HTML上传空间    上面说了插件本身不支持本地图片上传,所以我们要对此进行一定的修改,添加本地上传的功能,不是很复杂,我只是在image.htm中加了form,代码如下:

                                                       
至此控件修改完毕,效果图如下:不要问我为什么加在下面这么难看,因为任性。

3

三、图片上传事件响应    这个很简单话不多说,直接贴代码如下:function func_upload_image(){    if($('#id_upload_file').val()==''){        alert('请选择要上传的图片@');        return false;    }    $('#id_insert_image_form').ajaxSubmit({        beforeSubmit:function(){},        success: function(html, status){            //alert(html);var result = html.replace('

', '');            result = result.replace('
', '');            if (html.indexOf('格式') > 0) {                alert(result);                return;            }            $('#src').val(result);            ImageDialog.showPreviewImage($('#src').val());            return;        }    });}

4

四、服务器上传时间响应    前端工做处理完了,接下只需要服务器端接受文件解析成图片保存在服务器,并且返回一个网络路径就OK了,这时候就需要一个Python第三方图片处理库PIL,window下傻瓜式的安装,Linux下 apt-get install PIL,注意window下面一定要注意操作系统位数,按相应版本安装,不然就算安装成功运行时也会报错,安装之后处理代码如下,自行体会;def upload_image(request):    if request.method == 'POST':        if u'id_upload_file' in request.FILES:            f = request.FILES['id_upload_file']            parser = ImageFile.Parser()             for chunk in f.chunks():                parser.feed(chunk)            img = parser.close()            file_path = os.path.join(IMAGES_UPLOAD_TEMP_DIR[0])            if not os.path.exists(file_path):                os.mkdir(file_path)            file_name = str(time.time())            f = os.path.join(file_path, file_name)            img.save(f + '.jpg', 'JPEG')            return HttpResponse('serverIP/static/image/filname.jpg' )

5

五、效果预览     到这里呢!整个的修改过程已经完成了,如果你还是不能上传图片,那么请自行重试,接下来让我们看下效果图,好像还不错!(完)

推荐信息