xsrf form html,tornado,python_tornado开启了xsrf_cookies,在ckeditor中上传文件如何传入xsrf_form_html()?,tornado,pyt...

tornado开启了xsrf_cookies,在ckeditor中上传文件如何传入xsrf_form_html()?

tornado在setting中设置了"xsrf_cookies" : True,则需要在表单中添加{% module xsrf_form_html() %}。

但ckeditor如何传xsrf_cookies这个值,每次上传图片都显示'_xsrf' argument missing from POST。

如果把"xsrf_cookies"设置为False则上传成功。

下面是上传的代码

class ckuploadHandeler(BaseHandler):

@authenticated

def gen_rnd_filename(self):

filename_prefix = datetime.datetime.now().strftime('%Y%m%d%H%M%S')

return '%s%s' % (filename_prefix, str(random.randrange(1000, 10000)))

@authenticated

def post(self):

"""CKEditor file upload"""

error = ''

url = ''

callback = self.get_argument("CKEditorFuncNum")

if self.request.method == 'POST' and 'upload' in self.request.files:

fileobj = self.request.files['upload']

fname, fext = os.path.splitext(fileobj[0]['filename'])

rnd_name = '%s%s' % (self.gen_rnd_filename(), fext)

filepath = os.path.join(self.settings['static_path'], 'upload', rnd_name)

# 检查路径是否存在,不存在则创建

dirname = os.path.dirname(filepath)

if not os.path.exists(dirname):

try:

os.makedirs(dirname)

except:

error = 'ERROR_CREATE_DIR'

elif not os.access(dirname, os.W_OK):

error = 'ERROR_DIR_NOT_WRITEABLE'

if not error:

print(filepath)

with open(filepath,'wb') as up: #有些文件需要已二进制的形式存储,实际中可以更改

up.write(fileobj[0]['body'])

urlpath = filename='%s/%s' % ('upload', rnd_name)

url = self.static_url(urlpath)

print(url)

else:

error = 'post error'

res = """

window.parent.CKEDITOR.tools.callFunction(%s, '%s', '%s');

""" % (callback, url, error)

self.write(res)

Handler的URL (r'/upload/', ckuploadHandeler),

显示错误`WARNING:tornado.general:403 POST /upload/?CKEditor=context&CKEditorFuncNum=1&langCode=zh (127.0.0.1): '_xsrf' argument missing from POST

`

如何在上传图片的时候把xsrf_cookies也post过去?

html代码:

CKEDITOR.replace('context');

相关阅读:

哪位技术大神用过金斧子APP,首页效果就是一个列表,往上推列表慢慢变大

idea coding git 403

如果网站带宽接近饱和,服务器有很多用户连接,会不会拖垮网站?

js如何一个页面多个上传而不被覆盖的问题?

如何用正则把连续出现用.连接的单词的第一个替换掉?

php获取不到$_FILES) 如图 高手求教。

css规范,关于浮动有9点说明,其中第4点不太理解,求解释

为什么borderColor要使用CGColor而不能使用UIColor

问一个qq互联登录的问题:一个开发者账号下的多应用之间统一用户

html 页面字数过多 要去判断行数

display:table 单元格变形问题

Java下Socket通讯 发送数据后如何获知何时收到Ack

浏览器JS环境中,如何异步使用原生confirm?

C# 调用cdo.message发送邮件的问题

Math.random 究竟含义为何?

为什么iphone4s 下载新版本项目,下载下来却为旧版本?

在vc6.0的dll工程中导入别人的cpp和hpp文件,编译后有语法错误

一个JQ问题,左右移动问题

OpenSuSE13.2 编译安装 tsocks-1.8 出错(saveme.c)

微信JSSDK 关于安全域名

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值