GAE(Python)表单文件上传+电子邮件文件作为附件



我需要在谷歌应用引擎(GAE Python)上实现一个相当简单的web表单,它接受一些表单输入(姓名、电子邮件、电话)和简历(通常是TXT、PDF或DOC/DOCX)文件。提交表格后,我希望通过电子邮件发送表格内容,如果表格中提交了文件,则将其作为附件包含在指定电子邮件地址的同一电子邮件中。

  1. 我不需要该文件在通过电子邮件/附件发送后存在。有点像临时文件,或者存储在临时blob存储区中
  2. 有了HTML5和jQuery,就有很多漂亮的用户界面来实现文件上传。是否有任何推荐的方法可以使用其中一种与GAE配合良好的方法,以及在浏览器不支持现代方法(即IE)的情况下能够优雅地降级

如果相关的话,我正在使用jinja2框架。(顺便说一句,我是Python新手)

提前感谢!

要在GAE中将文件作为blob上传,您需要来自名为webapp的内置框架的blobstore_handlers。这些文档有一个完整的上传文件示例,我认为没有其他方法可以上传到blobstore。

当您有blob时,请参阅文档中的此页面的第一个示例,以便将blob附加到电子邮件中。

现在,对于"临时文件解决方案",您可以尝试不同的方法:使用StringIO-python模块将上传文件写入ram。类似的东西:

<form action="/test/" method="POST" enctype="multipart/form-data">
  <input type="file" name="file"><br>
  <input type="submit"name="submit" value="Submit">
</form>
def post(self):
    output = StringIO.StringIO()
    upload = self.request.get('file')
    output.write(upload)
    self.response.write(output.getvalue())

最新更新