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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 查看linux执行的命令记录_history命令详解

    查看linux执行的命令记录_history命令详解前言我们每次敲打linux命令的时候,有时候想用之前用过的命令,一般情况下,我们都会按↑↓箭头来寻找历史的命令记录,那如果我想用1天前执行的某条命令,难道还要按↑100次?显示这样是不现实的,我们可

    2022年7月30日
    6
  • android 设备usb调试模式,如何打开Android设备的USB调试模式「建议收藏」

    android 设备usb调试模式,如何打开Android设备的USB调试模式「建议收藏」目前大部分刷机等工具都是采用Adb方式连接,所以需要您在设备上打开USB调试模式Android设备打开USB调试模式总共有三种不同方法,根据系统版本而不同,以下为Android所有系统版本对应的打开方法壹2.1~2.3.7系统打开方法:点击手机Menu键(菜单键),在弹出的菜单中选择设置(Setting),或在应用程序中找到设置程序点击进入进入设置界面的应用程序即可打开…

    2025年11月5日
    2
  • java编译器——安装IDEA 步骤

    java编译器——安装IDEA 步骤1、从官网上下载ideaIU-2021.2.3,地址如下,点击download;IntelliJIDEA:TheCapable&ErgonomicJavaIDEbyJetBrainsACapableandErgonomicJavaIDEforEnterpriseJava,Scala,Kotlinandmuchmore…https://www.jetbrains.com/idea/图12、IntelliJIDEA是一款跨平台的开发工具,

    2022年7月15日
    47
  • IPV6 阿里DDNS

    IPV6 阿里DDNSIPV6阿里DDAS因为需要在家搭建一套环境,并且需要公网能访问。国内的ipv4的地址,各大运营商基本都不会分配ipv4地址(电信宽带好像有地方可以,但是听说很贵),而且是动态的,每过段时间就会改变。发现移动宽带的公网ipv6地址是可以获取到的,但是也会动态刷新。想稳定访问就加上阿里的ddns的域名访问。###1.准备工作因为宽带接入家里基本是都是需要通过光猫拨号后,再接入路由器。这样就拿不到真实的公网ipv6地址,需要先将光猫中的设置改为桥接模式,再让路由器输入宽带账户和密码拨号。这个过程我调

    2022年6月14日
    39
  • 信息收集8——masscan,nbtscan「建议收藏」

    信息收集8——masscan,nbtscan「建议收藏」目录masscannbtscanmasscan大规模地址范围扫描器默认每秒100包,可提升至约25,000,000包每秒 理论_上全球地址范围指定一个端口的打描可在3分钟完成命令格式masscan<ipaddresses/ranges>-pportsoptions地址范围1.1.1.1-1.1.1.10、1.0.0.0/8–exclude排除IP地址段–excludefile排除文件中IP地址端口-p80,20-25 -pU:1

    2025年11月10日
    3
  • Spring概述「建议收藏」

    Spring概述「建议收藏」Spring概述

    2022年4月22日
    54

发表回复

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

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