我需要动态地将画布图像数据上传到服务器(数据库),也就是说,我需要创建一个表单并使用一个input=文件,然后在没有任何用户交互的情况下发布图像数据
FWIW,这就是我工作的方式
我的服务器在谷歌应用程序引擎中。我使用jQuery.post将canvas.toDataURL()的输出作为post请求的一部分发送。数据URL是base64编码的图像数据。所以在服务器上,我解码它并将其转换为图像
重新导入
导入base64
类TnUploadHandler(webapp.RequestHandler):
dataUrlPattern=re.compile('data:image/(png | jpeg);base64,(.*)$)
def post(自我):
uid=self.request.get('uid')
img=self.request.get('img')
imgb64=self.dataUrlPattern.match(img).group(2)
如果imgb64不是None和len(imgb64)>;0:
缩略图=缩略图(
uid=uid,img=db.Blob(base64.b64解码(imgb64)))
缩略图
我从客户端发送如下数据:
$.post(“/upload”,
{
uid:uid,
img:canvas.toDataURL('image/jpeg'))
},
函数(数据){};
这可能不是最好的方法,但它是有效的