将二进制文件上载到GAE Python Blobstore
我可以用这个代码上传文本文件.csv、.json,但我不能上传Excel文件.xls或.xlsx将二进制文件上载到GAE Python Blobstore,python,google-app-engine,blobstore,webapp2,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
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>
上传时二进制文件的处理方式是否不同?我上面的表格过于简化了。我同时发布了其他表单元素。此二进制文件的文件大小是多少?Try:blobstore.BlobReaderblob_键,缓冲区大小=2000000。你能在这行之前记录blob_键吗?这不对:blobstore.deleteblob_键。应该是blobstore.deleteblob\u key。@GAEfan是的,delete key语法是错误的。实际上我把粘贴工作搞砸了。这在我的真实代码中不是问题。我能说的是,你的反馈让我有信心再次攻击它,我最终战胜了它。在我的代码中,blob_reader.read行前后都有一个logging.info语句。悬挂的是伐木线。非常令人沮丧的是,我用来调试的那行代码就是罪魁祸首。但我真的很高兴能过了这一关。