Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将二进制文件上载到GAE Python Blobstore_Python_Google App Engine_Blobstore_Webapp2 - Fatal编程技术网

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

将二进制文件上载到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

我可以用这个代码上传文本文件.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>

上传时二进制文件的处理方式是否不同?我上面的表格过于简化了。我同时发布了其他表单元素。

此二进制文件的文件大小是多少?Try:blobstore.BlobReaderblob_键,缓冲区大小=2000000。你能在这行之前记录blob_键吗?这不对:blobstore.deleteblob_键。应该是blobstore.deleteblob\u key。@GAEfan是的,delete key语法是错误的。实际上我把粘贴工作搞砸了。这在我的真实代码中不是问题。我能说的是,你的反馈让我有信心再次攻击它,我最终战胜了它。在我的代码中,blob_reader.read行前后都有一个logging.info语句。悬挂的是伐木线。非常令人沮丧的是,我用来调试的那行代码就是罪魁祸首。但我真的很高兴能过了这一关。