2014-03-03 30 views
-1

我正在制作一个webapp,可以接受用户上传的图像并将其转换为base64。Google App Engine Base64对来自blobstore的图像进行编码

class TestImageHandler(blobstore_handlers.BlobstoreUploadHandler): 
    def post(self): 

    upload_files = self.get_uploads('file') # 'file' is file upload field in the form 
    if upload_files: 
     blob_info = upload_files[0] 
     process_img(blob_info) 
     blobstore.delete(blob_info.key()) # optional: delete file after import 

我打算处理process_img过程中的形象,才发现,我不知道如何来检索Blob存储的图像数据和编码。

+0

那么,有什么问题吗? – Lipis

+0

起初我不知道如何将blobstore中的图像转换为base64。后来(我已经回答),我发现我的方式。 – pspencil

回答

0
class TestImageHandler(blobstore_handlers.BlobstoreUploadHandler): 
    def post(self): 

     upload_files = self.get_uploads('file') # 'file' is file upload field in the form 
     if upload_files: 
      blob_info = upload_files[0] 
      string = process_img(blob_info) 
      blobstore.delete(blob_info.key()) # optional: delete file after import 

      self.response.out.write('<img alt = "" src = "%s" >' % string) 


def process_img(blob_info): 
    blob_reader = blobstore.BlobReader(blob_info.key()) 
    data = blob_reader.read() 
    return "data:image/%s;base64,"%blob_info.filename.split('.')[1]+base64.b64encode(data) 
0
class TestImageHandler(blobstore_handlers.BlobstoreUploadHandler): 
def post(self): 

    upload_files = self.get_uploads('file') 
    data_to_64 = re.search(r'base64,(.*)', upload_files).group(1) 
    decoded = data_to_64.decode('base64') 
    file_name = files.blobstore.create(mime_type='image/png') 
    with files.open(file_name, 'a') as f: 
     f.write(decoded) 
    files.finalize(file_name) 
    blob_key = files.blobstore.get_blob_key(file_name) 
相关问题