0

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

  1. 通过电子邮件发送/附加后,我不需要该文件存在。有点像临时文件,或存储在临时 blob 存储中。
  2. 使用 HTML5 和 jQuery,有很多花哨的用户界面来实现文件上传。是否有任何推荐的方法来使用其中一种与 GAE 很好地配合使用的方法,并且如果浏览器不支持现代方法(即 IE)也能够优雅地降级?

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

提前致谢!

4

1 回答 1

0

要在 GAE 中将文件作为 blob 上传,您需要blobstore_handlers来自名为webapp. 文档有一个完整的上传文件示例,我认为没有其他方法可以上传到 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())
于 2013-08-12T22:54:25.133 回答