我正在开发一个项目,我试图在blob商店上传图像。但是我收到了这个错误
文件" C:\ Users \ shaizi \ PycharmProjects \ simpletestapp \ Update.py",line 51,在帖子中
blob_info = upload_files [0]
IndexError:列表索引超出范围
我的html表单代码是
<form id="signup" method="post" action="/update" enctype="multipart/form-data">
<label>Change image:</label>
<input type="file" name="pict" ><br>
</form>
用于将图像上传到Blob商店的Python代码:
def post(self):
blobstore.create_upload_url('/post/signup')
upload_files = self.get_uploads('pict')
blob_info = upload_files[0]
答案 0 :(得分:1)
实际上我必须将操作设置为上传网址。
<form id="signup" method="post" action="/post/signup" enctype="multipart/form-data">
<label>Change image:</label>
<input type="file" name="pict" ><br>
</form>
答案 1 :(得分:0)
我认为你必须使用form_url
变量:
` <form method="post" action="{{ form_url }}" accept-charset="UTF-8"
enctype="multipart/form-data">`
您可以使用后端代码从appengine获取此变量:
class UploadPage(BaseRequestHandler):
def get(self):
form = UploadForm()
self.render('upload.html', {
'form': form,
'form_url': blobstore.create_upload_url('/upload_form'),
})
答案 2 :(得分:0)
在我的情况下,对于多部分表单,我得到的文件数据如下:
self.request.get('<name_in_form>')
对于您的情况,它应该是:
self.request.get('pict')
在任何情况下,如果可能的话,尽量避免使用blobstore,因为Google建议使用云端存储,因为blobstore看起来将来会被弃用,有几个引用:
https://cloud.google.com/appengine/docs/python/blobstore/
Google Blobstore versus Google cloud storage
问候。