2

GAEデータストアに画像を保存しようとしていますが、次のエラーが発生します。

「Blob()引数は、ユニコードではなく、strインスタンスである必要があります」。

これを乗り越える方法はありますか?

私が画像を読んだり(しようとして)書いたりする方法は次のとおりです。

...
avatar_data = self.request.get('pic_input') # pic_input is the name of the form
artist.picture = db.Blob(avatar_data) # artist is an entity type that has a picture field of type db.Blob()
...

また、実際にデータストアに保存される文字列を取得したstr()内にavatar_dataをラップしようとしましたが、ファイルが表示されませんでした。

前もって感謝します !

4

2 に答える 2

5

あなたは何をしようとしているのですか?

からの応答pic_inputはUnicode文字列ですが、それを単なるバイナリビットであるかのように格納しようとしています。これらのバイナリビットまたは文字列ですか?

それらがバイナリビットである場合、そもそもユニコードにエンコードされるべきではありませんでした。

文字列の場合は、BlobaTextまたは。に格納するべきではありませんString

フォームのアップロードがエンコードされた文字列(Unicode)を送信する理由は、フォームで適切なenctypeを使用しなかったためです。

<form method = "post" enctype="multipart/form-data" >

これを解決する必要があり、コードは正常に機能します。

于 2012-05-17T19:39:43.703 に答える
3

それをエンコードしてください!

avatar_data.encode('utf-8')

utf-8を必要なエンコーディングに置き換えます(例:'ascii'

于 2012-05-17T19:32:36.760 に答える