Frage

Hallo, ich habe ein paar Bilder als BlobProperty in Google Cloud Datastore gespeichert. Ich versuche, diese Bilder über Ajax in meine Vorlage zu laden. Für zB: - hat ein Benutzer ein Bild und einen Namen. Nun ist der Bild- und Namensbereich wird über einen AJAX get Aufruf an den Server aufgefüllt. Ich bin nicht verstehen, wie ich diese Bilder an den Client senden, JSON Binärdaten unterstützen würde nicht. Allerdings sagt googeln um mich an etwas, genannt Basis 64 (ich bin ganz neu auf all dies, so lassen Sie mich zugeben, ich bin ein noob).

Ist dies der einzige Weg, dies zu umgehen oder gibt es eine andere Art und Weise besser.

War es hilfreich?

Lösung

Dieser Thread schlägt vor, dass, wenn Sie nur ein Bildelement erstellen, dessen src gesetzt, und fügen Sie ihn auf Ihrer Seite mit Javascript, wird der Browser zum Herstellen einer HTTP-Anforderung für das Image pflegen:

http://bytes.com/topic/ Javascript / Antworten / 472046-using-ajax-xmlhttprequest-load-Bilder

Wenn Sie nicht wollen, es zu tun mit ‚reinem‘ AJAX, dann base64 ist wahrscheinlich das Beste: es ist eine Möglichkeit, binäre Daten der Codierung (wie Bilder) als Text, so dass Sie es als eine lange Zeichenfolge in json schicken.

Andere Tipps

Dies ist, wie ich es tun, dann ist es in der Flasche, aber dennoch Python seines Auf diese Weise können Sie einen Request-Handler erstellen, um die Bilder anzuzeigen.

Also alles, was Sie tun müssen, um das Bild über Ajax bekommen wird immer das Bild-ID, serviert werden. Es ist einfacher und Sie können die Größe als auch im laufenden Betrieb

manipulieren
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

das ist, was ich tun, um die Größe zu manipulieren

@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

Hoffnung, die

hilft
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top