捣鼓TinyMCE 粘贴图片并上传+Django后台
2024-08-29 02:44:32
前面一篇写了上传到Flask后台,但是我不熟悉Flask,原先想学习一下,据说是轻量级。
但是我发现,学习会浪费我大量的时间,因为我并不是以这个为生的,我的目标只是要完成功能,让我自己能尽早使用起来,而且用户只有我一个,因此还是回到Django吧。
相对来说,我更熟悉Django,而且Django的文档真的很齐全,查什么东西都很方便,很快就可以把功能完成。
前台的JS代码基本上差不多,唯一需要考虑的是注意Django的MEDIA_URL, MEDIA_ROOT,我搞懂这些花了点时间。
代码片段如下:
在JS中,我把图片数据post到pasteupload/这个地址
x.open('POST', '/ss9/pasteupload/');
x.send(BlobFile);
在Django的app中的 url.py中表明用paste_upload方法处理。
urlpatterns = patterns('ss9.views',
url(r'^$', 'index'),
url(r'^examples/(?P<ex_name>\w+)/$', 'show_example' ),
4 url(r'^pasteupload/$', 'paste_upload'),
url(r'^addmodifynode/$', 'add_modify_node'),
)
在view中,代码还没有做出错处理。因为还没有想好如何处理,是返回一个错误的状态给client端呢,还是返回一个失败的图像地址给client端? 暂时还是以完成功能为主,专业的程序员可不要学我这种业余人士的做法哈。
from django.http import HttpRequest, HttpResponse, Http404
from django.shortcuts import render_to_response, get_object_or_404
from ss9.models import *
from tinynote.settings import MEDIA_ROOT
import datetime def paste_upload(request):
if request.body:
print len(request.body)
imgdata = request.read() now = datetime.datetime.now()
fname = "pasted_image_" + now.strftime("%Y%m%d%H%M%S") + ".png" file = open( MEDIA_ROOT + "/image/paste_image/" + fname, 'wb')
file.write(imgdata)
file.close() imgsrc = "/media/image/paste_image/" + fname
return HttpResponse( imgsrc, content_type='application/text')
Django处理raw data的方式是通过request.body 和 request.read() 。而正常的form是通过request.POST['name'] 这样来获得的。
最新文章
- CSSText属性批量修改样式
- maven buid 导出项目依赖的jar包问题
- hadoop常用命令
- NSDate 时间比较...等
- hdu4609 3-idiots
- Redis简介及3.0.2编译安装
- SOA之(4)——服务实现的途径
- 20个 Unix/Linux 命令技巧
- 存储过程--表变量和while简单运用
- lua迭代器和仿制药for
- swfupload多文件上传[附源码]
- 【AtCoder】ARC071
- 转载 用Python实现设计模式——工厂模式
- 利用cookies跳过登陆验证码
- Git 配置命令设置
- listView 解决焦点冲突问题 item项和子控件之间的冲突
- linux磁盘空间查看inode
- 【Zookeeper】源码分析之Watcher机制(二)之WatchManager
- linux 101 hacks 4stat diff ac
- VMware12 中安装MS-DOS 7.10