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

xsrf form html,tornado开启了xsrf_cookies,在ckeditor中上传文件如何传入xsrf_form_html()?…tornado在setting中设置了”xsrf_cookies”:True,则需要在表单中添加{%modulexsrf_form_html()%}。但ckeditor如何传xsrf_cookies这个值,每次上传图片都显示’_xsrf’argumentmissingfromPOST。如果把”xsrf_cookies”设置为False则上传成功。下面是上传的代码classcku…

大家好,又见面了,我是你们的朋友全栈君。

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’);

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/144488.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • pr添加删除关键帧_pr怎么全选关键帧

    pr添加删除关键帧_pr怎么全选关键帧使用的版本依旧是PrProCC2017添加关键帧双击需要添加关键帧的素材左边指向区域双击后,区域会变大,鼠标滚轮滑动效果一样然后点击素材,在点左侧的指向区域的小点点,添加或删除关键帧点

    2022年8月3日
    9
  • zookeeper入门教程_日语入门自学

    zookeeper入门教程_日语入门自学zookeeperwatcher架构zookeeper 配置中心分布式ID分布式锁集群搭建数据一致性协议:zab协议Zookeeper Leader选举Observer角色及其配置watcher架构客户端首先将Watcher注册到服务器,同时将Watch对象保存到客户端的Watch管理器中。当Zookeeper服务器监听到的数据发生变化时,服务器会通知客户端,接着客户端的Watch管理器会触发相关的Watcher来回调响应处理逻辑,从而完成整体的数据发布/订阅流程。javaAPIJava

    2022年8月8日
    6
  • 人们的Live Meeting系列 (floyd)

    人们的Live Meeting系列 (floyd)

    2022年1月16日
    48
  • 亿图图示 mac 激活码【最新永久激活】2022.02.09

    (亿图图示 mac 激活码)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html4KDDGND3CI-eyJsaWN…

    2022年4月1日
    2.7K
  • 夜深人静学算法_写夜深人静的句子

    夜深人静学算法_写夜深人静的句子一种处理单调性问题的数据结构—单调栈

    2022年9月22日
    2
  • java渗透测试框架_java编程

    java渗透测试框架_java编程(7)sqlmap(python脚本学习下)经典sql注入工具(这种针对参数的工具,不知道是不是扫描方式有问题,还是怎么着,怎么才能抓几个包,或者把常用点的包抓出来)抓几个sqlmap的包sqlmap功能很强大,这里就抓了一个结合burpsuitePOSTsqlmap的包(也可以用Burpsuitesqlmap插件http://www.freebuf.com/tools/6426.html)命令:…

    2022年8月12日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号