tornado开启了xsrf_cookies,在ckeditor中上传文件如何传入xsrf_form_html()?,,tornado在sett
tornado开启了xsrf_cookies,在ckeditor中上传文件如何传入xsrf_form_html()?,,tornado在sett
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 = """ <script type="text/javascript"> window.parent.CKEDITOR.tools.callFunction(%s, '%s', '%s'); </script> """ % (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代码:
<div class="field-box"><textarea name="context" class="span12 " type="text" rows="9" required></textarea><script>CKEDITOR.replace('context');</script>
编橙之家文章,
相关内容
- 推荐几个好的开源项目学习,开源项目学习,推荐几个好
- 运行scapy里的sr()时,一直报错,像下面那样。,sc
- vim的Ultisnips插件问题,vimultisnips插件,大家好,在windo
- Python2 报错 SyntaxError: unexpected EOF while parsing,python2syn
- Python:为什么不可以这样:print list1.sort(),而是先:list
- python里from import as 和afunc=module.func会导致什么不同吗?
- AttributeError: 'module' object has no attribute 'Ruery_Resu,,class
- 怎么理解 Python 文档中的这句话,python这句话,"The us
- 32位Python遭遇阻塞,32位python遭遇,在最近编写的一个爬
- python3 django1.8 多语言编码问题,python3django1.8,使用djan
评论关闭