使用Python将文件上传到GAE数据存储区

时间:2013-12-04 12:46:27

标签: python google-app-engine pdf google-cloud-datastore

我正在上传一个小的pdf文件,以便在数据存储区中存储为blob。

这是上传html,从用户那里获取PDF:

<form action="/" method="post" enctype="multipart/form-data">
    <input type="file" name="pdf">
    <input type="submit" value="Upload">
</form>

这是处理程序,将PDF存储到数据存储区:

def post(self):
    p = self.request.POST['pdf']
    if p:
        person.pdf = p.value

这是视图,向用户显示PDF的内容:

<embed src="{{ person.pdf }}" width="500"
    height="375" type="application/pdf">

根据我发现的所有信息,PDF的内容应该保留在p.value中。但是,person.pdf属性为None,当然,没有显示任何内容。

1 个答案:

答案 0 :(得分:1)

这似乎是错误的最基本的方式是:

<embed src="{{ person.pdf }}">

应包含下载pdf文件的URL。但是,您要通过上传表单上传文件,并且可能存储文件数据。

至少有一些事情可能出错,你应该通过调试来解决出错的地方:

  1. 您实际上传文件了吗?
  2. 如何对文件进行上传编码?
  3. 从POST数据中获取文件时,文件是如何解码的?
  4. 您如何将实际文件存储在person.pdf?
  5. 最后,你修改后真的在拯救人吗?显示所有代码而不是代码段通常更有帮助。如果这就是你的所有代码,那么人们来自哪里呢?它实际上并没有在任何地方进行初始化。