GAE Python webapp2图片上传错误

时间:2016-06-29 19:22:39

标签: python google-app-engine blobstore webapp2

我正在开发一个项目,我试图在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]

3 个答案:

答案 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

问候。