0

こんにちは私はGoogleCloudDatastoreにBlobPropertyとして保存されているいくつかの画像を持っています。これらの画像をajax経由でテンプレートにロードしようとしています。例:-ユーザーは画像と名前を持っています。これで、サーバーへのAJAX get呼び出しを介して、画像と名前の領域にデータが入力されます。これらの画像をクライアントに送信する方法がわかりません。JSONはバイナリデータをサポートしていません。ただし、グーグルで移動すると、base 64と呼ばれるものがわかります(私はこれらすべてにまったく慣れていないので、認めさせてください。私は初心者です)。

これを処理する唯一の方法ですか、それとも他のより良い方法がありますか。

4

2 に答える 2

1

このスレッドは、画像要素を作成し、そのsrcを設定し、Javascriptを使用してページに追加するだけで、ブラウザが画像のHTTPリクエストを処理することを提案しています。

http://bytes.com/topic/javascript/answers/472046-using-ajax-xmlhttprequest-load-images

'純粋な'AJAXでそれを実行したい場合は、base64がおそらく最良の方法です。これは、バイナリデータ(画像など)をテキストとしてエンコードする方法であるため、jsonで長い文字列として送信できます。

于 2010-11-14T12:57:07.073 に答える
0

これは私がそれを行う方法です、それはフラスコにあります、それにもかかわらずそれはこのようにpythonです、あなたは画像を表示するためにリクエストハンドラーを作成します。

したがって、ajaxを介して画像を取得するために必要なのは、提供される画像IDを取得することだけです。シンプルで、サイズもその場で操作できます

from flask import request

from google.appengine.api import taskqueue, images, mail
from google.appengine.ext import db

    @app.route('/image/<img_id>')
    def imgshow(img_id):
      imageuse = Image.all().filter("image_id =", img_id).get()
      if imageuse:
        response = Response(response=imageuse.content)
        #you can use any type over here
        response.headers['Content-Type']='image/png'
        return response
      else:
        return

これは私がサイズを操作するために行うことです

@app.route('/thumb/<img_id>')
def thumbshow(img_id):
  imageuse = Image.all().filter("image_id =", img_id).get()
  if imageuse:
    thbimg = images.resize(imageuse.content, 80)
    response = Response(thbimg)
    response.headers['Content-Type']='image/png'
    return response
  else:
    return

それが役立つことを願っています

于 2012-01-04T07:13:34.700 に答える