2011-08-02 6 views
0

私はGoogle App EngineのPython実装を使用しています。 HTMLフォームから画像入力タグの配列を渡そうとすると、Pythonコントローラで画像入力タグを取得できないようです。Htmlフォームイメージ配列をGoogle App Engine(Python)に渡すにはどうすればよいですか?

HTML:

<form action="/addImages" method="post" enctype="multipart/form-data"> 
    <input type="file" name="images" /> 
    <input type="file" name="images" /> 
    <input type="file" name="images" /> 
</form> 

ザ・パイソン:私はこれをしようとすると

class AddImages(webapp.RequestHandler): 
def post(self): 
    images = self.request.get_all('images') 

    for img in images: 
     if img != None: 
      img_entity.blob = db.Blob(img) 

    self.response.out.write("Upload Succeeded") 

、私は恐ろしいユニコード/ STRエラーを取得:で

TypeError: Blob() argument should be str instance, not unicode 

行:

db.Blob(img) 

私はこのチュートリアルのほとんどを追っていましたが、この特定の問題については議論の余地がありませんでした。

+0

'db.Blob()'で 'img.encode()'を試しましたか? – agf

+0

私はutf-8またはasciiにUnicodeをエンコードできますが、ファイルデータの一部を削除しませんか? – mienaikoe

+0

すべてのフィールドに10MB以上のデータをアップロードしようとすると、大きすぎるリクエストに遭遇することに気づいていますか? BlobStoreの使用をお勧めします。この頭痛の多くは消えてしまいます。 – Paddy

答えて

3

あなたはすなわちhttp://www.mail-archive.com/[email protected]/msg03314.html参照、フォームタグの

enctype="multipart/form-data" 

属性を含める必要があります。あなたのエラーのためにグーグルでは、問題のいくつかの他のインスタンスが表示されます。

enctypeを追加しても問題が解決しない場合は、db.Blob(str(img))および/またはdb.Blob(img.encode('utf-8'))を上記のようなスレッドでも試してみてください。 images =self.request.str_GET['images']またはこれに類するものを試すこともできます。

+0

agf、元のコードを読めば、enctypeが含まれていることがわかります。 str(img)は完全に機能しました。ありがとう! – mienaikoe

関連する問題