2016-06-29 6 views
1

私はブロブストアに画像をアップロードしようとしているプロジェクトに取り組んでいます。しかし、私はこのエラーを取得していますGAE Python webapp2 image upload error

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のコードを次のとおりです。

def post(self): 

    blobstore.create_upload_url('/post/signup') 

    upload_files = self.get_uploads('pict') 

    blob_info = upload_files[0] 
+1

「self.get_uploads」のコードを表示できますか? – snakecharmerb

+1

ファイルをアップロードするための組み込み関数。 –

答えて

1

は実際に私がアップロードするアクションを設定する必要がありますurl。

私はあなたが form_url変数を使用するように持っていると思う
<form id="signup" method="post" action="/post/signup" enctype="multipart/form-data"> 

<label>Change image:</label> 
     <input type="file" name="pict" ><br> 
</form> 
0

` <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'), 
      }) 
0

、マルチで私はファイルデータを次のように取得しています:

self.request.get('<name_in_form>') 
0あなたのケースでは

、それは次のようになります。可能な場合はどのような場合には

self.request.get('pict') 

、Googleはクラウドストレージを使用することをお勧めしますと、将来的に廃止される予定のようブロブストアに見えるように、ブロブストアを使用して回避しよう、のカップル参考文献:

https://cloud.google.com/appengine/docs/python/blobstore/

Google Blobstore versus Google cloud storage

よろしく。