网站地图 联系我们

学习python首选-实战python学习班,专注于python高级工程师培养,python课程:包括Python核心编程技术、全栈开发、网络爬虫、人工智能等。python全栈工程师+提高工作经验,获取免费试听课程!
当前位置: python培训 > python学习 > 常见问题 > 正文

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

来源:肚皮舞 浏览量: 发布日期:20-06-17 09:22:47 调整字体大小【 【所属栏目:常见问题】

  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 = """

  """ % (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代码:

标签:
肚皮舞新闻动态News Center

肚皮舞视频

肚皮舞培训课程

联系卡伊丝contact us
联系我们
python培训「零基础入门到精通」python人工智能编程培训班-0798wz.com

咨询热线:18301225663