[Zope/Plone] Bild aus BrowserView

Django, Flask, Bottle, WSGI, CGI…
Antworten
mgraf
User
Beiträge: 34
Registriert: Donnerstag 14. Juni 2007, 11:46

Hallo,
wie kann ich auf ein Bild, dass in einer BrowserView per response ausgegeben wird zugreifen?

Erläuterung:
Ich habe eine externe MSSQL Datenbank, in dieser sind einige Daten gespeichert, unter anderem auch Bilder als "Binary" (blob).
Ich habe in dem BrowserView meine ganzen DB-relevanten Abfragen und möchte jetzt auch das Bild hier anzeigen lasse.

Das Problem, wenn ich auf das Url der BrowserView zugreife, wird mir natürlich sofort das Bild als Download angezeigt, weil ich ja im PageTemplate das Bild anzeige

Code: Alles auswählen


    def ProjectsImage(self, projectId=None, width=128, height=128):
        """
        return project image file
        """

        db = create_engine('mssql+pyodbc://user:pass@SERVER/DB')
        connection = db.connect()
        results = connection.execute('SELECT bild FROM FEWebsitebilder WHERE ID =' + str(projectId)).fetchone()
        try:
            return 'foo'
            image = results['Projektbild']
            self.request.RESPONSE.setHeader('Content-Type','mage/jpg')
            self.request.RESPONSE.setHeader("Content-Length", len(image))
            self.request.RESPONSE.write(image)
        except:
            return 'nicht funkt'
zugreifen tu ich in einem normalen BrowserView Template mit:
<img src="" tal:attributes="src python:view.ProjectsImage(projectId=projectId)" >

lg & danke für die Hilfe
michi
deets

Der code ist offensichtlich buggy bzw. gibt kein Bild zurueck. Und ich verstehe auch ueberhaupt nicht, was du mit "BrowserView" meinst. Ich kenne in Zope PageTemplates, ich kenne Browser, aber BrowserView sagt mir nichts. Hat das was mit ZPT/TAL zu tun?

Ausserdem ist dein Mime-Type falsch.

Last but not least: was ist dein eigentliches Problem? Willst du Bilder ueber ein <img>-tag anzeigen lassen?
Antworten