我正在使用Google App Engine上的Python制作邮件应用程序。
我想在“普通”网页中启用附件上传(发布到BlobstoreUploadHandler)(发布到RequestHandler)。
如果用户填写了“普通”表单的一部分,如何在用户上传(或她)附件后保留这些值(除了在提交帖子之前用javascript复制所有字段)?
答案 0 :(得分:2)
您可以编写一个派生自两个类的请求处理程序:
class YourRequestHandler(BlobstoreUploadHandler, RequestHandler):
pass
我也尝试过使用webapp2的RequestHandlers,它可以正常工作。
PS:为了防止孤立的blob,因为用户上传的文件超出了你的应用程序所期望的数量(这很容易发生,因为你无法控制用户的浏览器),我建议你写下你的帖子处理程序。以下几行:
def post(self):
uploads = self.get_uploads()
try:
pass # Put your application-specific code here.
# As soon as you have stored a blob key in the database (using a transaction),
# remove the corresponding upload from the uploads array.
finally:
keys = [upload.key() for upload in uploads]
blobstore.delete_multi(keys)