我可以使用此代码上传文本文件(.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>
对于上传,二进制文件的处理方式会有所不同吗?我上面的表格过于简化了。我还有其他同时发布的表单元素。