将二进制文件上载到GAE Python Blobstore

时间:2014-08-18 18:38:11

标签: python google-app-engine blobstore webapp2

我可以使用此代码上传文本文件(.csv,.json),但我无法上传Excel文件(.xls或.xlsx)。

class CreateTeam(blobstore_handlers.BlobstoreUploadHandler, BaseHandler):
    def get(self):
        upload_url = blobstore.create_upload_url('/create_team')
        context = {'upload_url': upload_url}
        self.render('create_team.html', **context)

    def post(self):
        blob_info = self.get_uploads('file')[0]
        blob_key = blob_info.key()
        blob_reader = blobstore.BlobReader(blob_key)
        file_data = blob_reader.read()  # this line stalls out
        blobstore.delete(blob_key())
        self.redirect('/')

当我尝试使用单行.xls文件时,blob_reader.read()行会在我的Mac上锁定。在我的浏览器(Chrome)中,标签图标似乎永远旋转,GAE启动器冻结。我必须退出并重新开始。

我的HTML看起来像这样:

<form method="POST" action={{ upload_url }} enctype="multipart/form-data">
    <div>
        <p>Upload the file</p>
        <input type="file" name="file">
    </div>
</form>

对于上传,二进制文件的处理方式会有所不同吗?我上面的表格过于简化了。我还有其他同时发布的表单元素。

0 个答案:

没有答案