1

キャンバスをデータ URL に変換し、GAE に投稿します。投稿は localhost で機能しますが、展開すると 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(self): 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)

何がうまくいかないのですか?

4

1 に答える 1