【问题标题】:Uploading Files in webapp2/GAE在 webapp2/GAE 中上传文件
【发布时间】:2015-03-14 10:01:04
【问题描述】:

我需要从基于 Webapp2 (Python) 的 Google App Engine 应用程序中的表单上传和处理 CSV 文件我知道我可以使用 blobstore 临时存储文件,但我很想知道是否有办法无需存储即可处理文件。

【问题讨论】:

    标签: python google-app-engine blobstore webapp2


    【解决方案1】:

    上传文件的内容在您的处理程序中的self.request.POST 中,因此您可以使用例如获取该内容(例如,上传文件的字段名为'foo'

    content = self.request.POST.multi['foo'].file.read()
    

    因此,现在您将内容作为字符串进行了处理——按您的意愿处理它。当然,这确实假设该东西适合内存(没有数兆字节的上传!-)...

    【讨论】:

      【解决方案2】:

      如果你需要通过 webapp2 上传带有 HTML 表单的文件,你需要做的第一件事是将 HTML 表单的enctype 属性更改为multipart/form-data,所以代码 sn-p 看起来像:

      <form action="/emails" class="form-horizontal" enctype="multipart/form-data" method="post">
          <input multiple id="file" name="attachments" type="file">
      </form>
      

      在python代码中,可以直接通过request.POST读取文件,这里是示例代码sn-p:

      class UploadHandler(BaseHandler):
          def post(self):
              attachments = self.request.POST.getall('attachments')
      
              _attachments = [{'content': f.file.read(),
                               'filename': f.filename} for f in attachments]
      

      【讨论】:

        猜你喜欢
        • 2016-11-01
        • 1970-01-01
        • 2013-02-01
        • 1970-01-01
        • 2014-10-03
        • 1970-01-01
        • 2012-11-15
        • 1970-01-01
        • 2012-03-21
        相关资源
        最近更新 更多