フォーム内の複数のファイルをBlobStoreにアップロードしようとしています。複数のファイルをBlobStoreにアップロードする方法は?
フォーム:私は、アップロードされたファイルごとにBlobInfoオブジェクトを取得しようとしている
<form action="{{upload_url}}" method="POST" enctype="multipart/form-data">
<label>Key Name</label><input type="text" name="key_name" size="50"><br/>
<label>name</label><input type="text" name="name" size="50"><br/>
<label>image</label><input type="file" name="image" size="50"><br/>
<label>thumb</label><input type="file" name="thumb" size="50"><br/>
<input type="submit" name="submit" value="Submit">
</form>
:
def post(self):
image_upload_files = self.get_uploads('image')
thumb_upload_files = self.get_uploads('thumb')
image_blob_info = image_upload_files[0]
thumb_blob_info = thumb_upload_files[0]
私はいくつかの奇妙な行動を見ています。両方のファイルがBlobStoreに作成されていますが、キーを取得して別のエンティティに格納できるようにする方法がわかりません。上記のコードは、image_blob_infoのキーを取得しますが、thumb_blob_infoは取得しません。私はget_uploadsの使い方を理解していません。私はフォームを介して複数のファイルを渡して、名前でフェッチして、別のエンティティの適切なBlobReferencePropertiesに格納できるようにしたい。
:それはあなたが{「GAE生成されたURL」URL}として戻ってサーバーからJSONのビットを取得を前提としています。アップロードするファイルがn個ある場合は、Karlが参照する解決策があります(ただし、実装するのは簡単ではありません)。 –
サムネイルをアップロードするようユーザーに求めている理由はありますか? get_serving_urlを知っていますか?フルサイズの画像からサムネイルを生成できますか? –
これはBlobStoreがフォームPOSTのみをサポートしていることを回避するための管理ページです(あなたはプログラム的にURLを保存することはできません)。それを言って、私はget_serving_urlについて知らなかった。それはBlobStoreの一部ですか? –