Seite 1 von 1

[Zope/Plone] Bild aus BrowserView

Verfasst: Donnerstag 19. Mai 2011, 09:29
von mgraf
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

Re: [Zope/Plone] Bild aus BrowserView

Verfasst: Donnerstag 19. Mai 2011, 11:45
von 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?