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

xsrf form html,python – 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/144575.html原文链接:https://javaforall.net

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


相关推荐

  • 程序猿抱大招

    程序猿抱大招

    2022年1月14日
    36
  • Python 技巧篇-pip卸载python库实例演示,查看pip命令大全方法[通俗易懂]

    Python 技巧篇-pip卸载python库实例演示,查看pip命令大全方法[通俗易懂]Python技巧篇-pip卸载python库实例演示,查看pip命令大全方法。因为安装的PyHook3没安装对吧,有点问题,就想着把它卸载掉,然后再重新安装一个,那应该怎么卸载呢?非常简单,就是pipuninstallxxx,正好和我们安装时的pipinstallxxx对应,下面还有一个确定操作,填y就是继续了,n就是取消了。python库卸载演示。cmd直接输入pip,回车就可以看到pip的命令大全了。

    2022年10月18日
    3
  • sendfile函數的使用[通俗易懂]

    sendfile函數的使用[通俗易懂]sendfile函數linux內核新加的函數,可以使得網絡傳輸文件時用户层无需分配缓冲区给将要传输的文件,从而能够节约内存,并直接调用系统调用#include<sys/sendfile.h>ssize_tsendfile(intout_fd,intin_fd,off_toffset,size_tcount);实例:#include<st…

    2022年6月4日
    33
  • go语言切片的三种方法_病理会诊蜡块还是切片

    go语言切片的三种方法_病理会诊蜡块还是切片Go语言入门之切片的概念

    2022年4月21日
    42
  • 孙鑫视频教程《Java从入门到精通》学习笔记

    孙鑫视频教程《Java从入门到精通》学习笔记http://www.pconline.com.cn/pcedu/empolder/gj/java/0606/815015.html第一课Java的一些基本概念 11-30日晚上听课笔记++++++++++++++++++++++++++++1、《JAVAweb开发详解》2、《VC++应用详解》JDK,软件开发包。包括J2SE(标准版)J2EE(企业版)J2ME(应用于手机和PDA使用

    2022年5月17日
    38
  • MATLAB GUI设计之弹出式菜单的使用

    MATLAB GUI设计之弹出式菜单的使用弹出式菜单在MATLABGUI设计中常常出现。比如串口助手、绘制图形等经常见到弹出式菜单如下图所示:使用方法:一、准备工作1、从MATLABGUIDE中拖出一个弹出式菜单2、双击这个弹出式菜单,出现检查器:将注意力放在途中红线位置处,点击string处的图标将其中的内容修改为你想要显示的内容:tag处的内容修改为自己想管这个弹出式菜单的名字。这里就按照原来

    2022年6月9日
    43

发表回复

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

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