繁体   English   中英

从IOS应用程序保存Google App Engine Base64照片

[英]Google app engine base64 photo save from IOS application

嗨,我正在开发IOS应用程序。 我还使用JSON Web服务。 而且我也将Google App Engine用于python。 我真的是python和google app引擎的新手。 我不知道这个问题。

我在json中发送base64图像和其他信息。 我想将其他信息保存到数据库(GQL)并保存到图像Google文件夹(Blob存储),并且此照片url与其他信息一起保存在Google数据库中。

你能帮我thanx吗

更新

import cgi
import datetime
import time
import urllib
import wsgiref.handlers
import os, urllib2, re, base64
import simplejson as json


from google.appengine.ext import db
from google.appengine.api import users,images, files
from google.appengine.ext import webapp
from google.appengine.ext import blobstore
from google.appengine.ext.webapp.util import run_wsgi_app
from google.appengine.ext.webapp import template
from google.appengine.ext import blobstore
from google.appengine.ext.webapp import blobstore_handlers
import logging


class PanoMessages(db.Model):
    first_name=db.StringProperty();
    last_name=db.StringProperty();
    msg_text=db.TextProperty();
    photo_url=blobstore.BlobReferenceProperty();


class IOSDeneme(webapp.RequestHandler):
    def post(self):
        received_content = self.request.body;

        try:
            decoded_json = json.loads(received_content);

            panoMsg=PanoMessages();
            panoMsg.photo_url=save_image_to_blobstore(decoded_json["picture"],"image/png");
            panoMsg.first_name=decoded_json["first_name"];
            panoMsg.last_name=decoded_json["last_name"];
            panoMsg.msg_text=decoded_json["msg_text"];
            panoMsg.put();



            self.response.out.write(json.dumps({'StatusCode':'2', 'StatusMessage':'OK'}));

        except ValueError:

                logging.error("json-time sent data which simplejson couldn't parse")
                self.response.out.write(json.dumps({'StatusCode':'4', 'StatusMessage':'NO'}));

        def save_image_to_blobstore(base64str, mimeType):
            from google.appengine.api import files
            import binascii
            fileName1 = files.blobstore.create(mime_type=mimeType)
            with files.open(fileName1, 'a') as f:
                f.write(binascii.a2b_base64(base64str))
                files.finalize(fileName1)
            return files.blobstore.get_blob_key(fileName1)

我尚未对此进行测试,但这应该将您的image64的base64字符串和mime_type接受,以将其存储到blobstore中,然后返回该图像的blob_key:

def save_image_to_blobstore(base64str, mime_type):
  from google.appengine.api import files
  import binascii
  file_name = files.blobstore.create(mime_type=mime_type)
  with files.open(file_name, 'a') as f:
    f.write(binascii.a2b_base64(base64str))
  files.finalize(file_name)
  return files.blobstore.get_blob_key(file_name)

您将使用返回的Blob键并将其存储在Model中,该Model将其他信息存储在您描述的JSON对象中。 然后,您可以使用所需的URL方案(可能基于密钥或ID或存储您其他JSON信息的模型)提供图片。 请参阅: https : //developers.google.com/appengine/docs/python/blobstore/overview#Serving_a_Blob

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM