GAE Python webapp2 图片上传错误
GAE Python webapp2 image upload error
我正在做一个项目,我试图在 blob 存储中上传图像。但是我收到这个错误
File "C:\Users\shaizi\PycharmProjects\simpletestapp\Update.py", line
51, in post
blob_info = upload_files[0]
IndexError: list index out of range
我的html表单代码是
<form id="signup" method="post" action="/update" enctype="multipart/form-data">
<label>Change image:</label>
<input type="file" name="pict" ><br>
</form>
Python上传图片到Blob存储的代码:
def post(self):
blobstore.create_upload_url('/post/signup')
upload_files = self.get_uploads('pict')
blob_info = upload_files[0]
实际上我必须将操作设置为上传 url。
<form id="signup" method="post" action="/post/signup" enctype="multipart/form-data">
<label>Change image:</label>
<input type="file" name="pict" ><br>
</form>
我认为你必须使用 form_url
变量:
` <form method="post" action="{{ form_url }}" accept-charset="UTF-8"
enctype="multipart/form-data">`
您使用后端代码从应用引擎获取此变量:
class UploadPage(BaseRequestHandler):
def get(self):
form = UploadForm()
self.render('upload.html', {
'form': form,
'form_url': blobstore.create_upload_url('/upload_form'),
})
在我的例子中,使用多部分表单,我得到的文件数据如下:
self.request.get('<name_in_form>')
对于你的情况,应该是:
self.request.get('pict')
在任何情况下,如果可能,尽量避免使用 blobstore,因为 Google 建议使用 Cloud Storage,因为 blobstore 看起来会在未来被弃用,一些参考资料:
https://cloud.google.com/appengine/docs/python/blobstore/
Google Blobstore versus Google cloud storage
此致。
我正在做一个项目,我试图在 blob 存储中上传图像。但是我收到这个错误
File "C:\Users\shaizi\PycharmProjects\simpletestapp\Update.py", line 51, in post
blob_info = upload_files[0]
IndexError: list index out of range
我的html表单代码是
<form id="signup" method="post" action="/update" enctype="multipart/form-data">
<label>Change image:</label>
<input type="file" name="pict" ><br>
</form>
Python上传图片到Blob存储的代码:
def post(self):
blobstore.create_upload_url('/post/signup')
upload_files = self.get_uploads('pict')
blob_info = upload_files[0]
实际上我必须将操作设置为上传 url。
<form id="signup" method="post" action="/post/signup" enctype="multipart/form-data">
<label>Change image:</label>
<input type="file" name="pict" ><br>
</form>
我认为你必须使用 form_url
变量:
` <form method="post" action="{{ form_url }}" accept-charset="UTF-8"
enctype="multipart/form-data">`
您使用后端代码从应用引擎获取此变量:
class UploadPage(BaseRequestHandler):
def get(self):
form = UploadForm()
self.render('upload.html', {
'form': form,
'form_url': blobstore.create_upload_url('/upload_form'),
})
在我的例子中,使用多部分表单,我得到的文件数据如下:
self.request.get('<name_in_form>')
对于你的情况,应该是:
self.request.get('pict')
在任何情况下,如果可能,尽量避免使用 blobstore,因为 Google 建议使用 Cloud Storage,因为 blobstore 看起来会在未来被弃用,一些参考资料:
https://cloud.google.com/appengine/docs/python/blobstore/
Google Blobstore versus Google cloud storage
此致。