【问题标题】:canvas toDataUrl upload to gaecanvas toDataUrl 上传到gae
【发布时间】:2013-08-13 04:48:06
【问题描述】:

我将画布转换为数据 url 并将其发布到 GAE。该帖子适用于本地主机,但在部署时返回 400。日志中没有错误,而且似乎该请求甚至没有发送到我的上传处理程序。

这是执行帖子的 jquery 代码

    $('#submitButton').click(function() {
        stage.toDataURL({
            callback: function(dataUrl) {
                $.ajax({
                    type: "POST",
                    url: "{{ upload_url|safe }}",
                    data: {file: dataUrl}
                }).done(function( respond ) {
                    alert(respond);
                });
            }
        });
    });

这是处理帖子的python代码

类 UploadHandler(blobstore_handlers.BlobstoreUploadHandler): def post(自我): logging.info('上传图片') self.response.headers["Access-Control-Allow-Origin"] = "*"

  try:
      data = self.request.get('file')
      data_to_64 = re.search(r'base64,(.*)', data).group(1)
      decoded = data_to_64.decode('base64')

      logging.info('Create the file')
      file_name = files.blobstore.create(mime_type='image/png')

      logging.info('Open the file and write to it')
      with files.open(file_name, 'a') as f:
          f.write(decoded)

      logging.info('Finalize the file. Do this before attempting to read it.')
      files.finalize(file_name)

      key = files.blobstore.get_blob_key(file_name)

      url = '/serve/%s' % key
      self.response.out.write('{ "url": "' + url + '" }')
  except Exception, e:
      logging.error(e)

有什么想法吗?

【问题讨论】:

    标签: jquery python google-app-engine


    【解决方案1】:

    我想通了。我只看 400 而不是响应正文。正文说端点不支持我发送的内容类型。

    如果你通过本教程https://developers.google.com/appengine/docs/python/blobstore/

    您使用 blobstore.create_upload_url('/upload') 创建上传 url

    创建的端点只支持内容类型 mulitpart/form-data

    我使用 jquery 发送数据的内容类型为 application/x-www-form-urlencoded。

    所以我的解决方法是不使用 blobstore.create_upload_url('/upload'),直接发布到 /upload

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-09-25
      • 2014-11-26
      • 2013-09-19
      • 1970-01-01
      • 1970-01-01
      • 2016-04-26
      • 2015-09-20
      • 1970-01-01
      相关资源
      最近更新 更多