gpt4 book ai didi

python - 使用PhoneGap + Google App Engine上传和保存图像

转载 作者:行者123 更新时间:2023-12-01 05:08:24 25 4
gpt4 key购买 nike

目标:在 PhoneGap 应用程序中拍摄/附加图片,并将每张图片的公共(public) URL 发送到 Google Cloud SQL 数据库。

问题 1:有没有办法从 Base64 编码图像(在 Python 中)创建 Google Cloud Storage 对象,然后将该对象上传到存储桶并返回公共(public)链接?

我希望使用 PhoneGap 将图像发送到 Python Google App Engine 应用程序,然后让该应用程序将图像发送到我设置的 Google Cloud Storage 存储桶,然后将公共(public)链接返回到 PhoneGap 应用程序。这些图像可以直接从应用程序获取,也可以从用户设备上的现有照片附加。

我使用 PhoneGap 的 FileTransfer 插件将图像上传到 GAE,这些图像作为 base64 编码图像发送(这不是我可以控制的)。

根据我在 Google Docs 中找到的内容,我可以将图像上传到 Blobstore;但是,它需要 <input type='file'>表单中的元素。我没有"file"输入元素;我只是获取从 PhoneGap 的相机对象返回的图像 URI,并显示所拍摄(或附加)的图片的缩略图。

问题 2:是否有可能拥有 <input type='file'>元素并控制它的值?例如,是否可以根据用户是否选择文件或拍照来设置它的值?

提前致谢!

最佳答案

这里为其他可能遇到此问题的人提供了一个解决方案。事实证明这非常简单!

为 GAE 项目设置存储桶后,您可以使用以下 Python 代码将图像发送到存储桶:

import cloudstorage as gcs
import webapp2
import cgi
import MySQLdb
import os
import logging
import time

from google.appengine.api import mail
from google.appengine.api import images
from google.appengine.ext import blobstore

class UploadImageHandler(webapp2.RequestHandler):
def post(self):
self.response.headers.add_header(ACCESS_CONTROL, '*')

f = self.request.POST['image']
fname = '/your-bucket-name/%s' % f.filename;

gcs_file = gcs.open(fname, 'w', content_type="image/jpeg")
gcs_file.write(self.request.get('image'))
gcs_file.close()

以及用于从 PhoneGap 应用程序上传文件的代码:

// Uploads images in "imageURIs" to the web service specified in "server".
function uploadImages(imageURIs, server) {
var success = function(data) {
alert("Successfully uploaded image!");
};

var fail = function(error) {
alert("Failed to upload image: "+error);
};

var options = new FileUploadOptions();
options.fileKey = "image";
options.mimeType = "image/jpeg";
var ft = new FileTransfer();

for (var i = 0; i < imageURIs.length; i++) {
alert("Uploading"+i);
options.fileName = imageURIs[i].substr(imageURIs[i].lastIndexOf('/') + 1);
ft.upload(imageURIs[i], encodeURI(server), success, fail, options);
}
}

我希望它对其他人有帮助。 :)

关于python - 使用PhoneGap + Google App Engine上传和保存图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24655877/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com