http://onion.net/2010/compression/zip

addBinary (filename : string, xlink : string, [fromDataSource : boolean]) : void

Mit Hilfe der Methode »addBinary()« lassen sich dem .zip-Strom binäre Dateien, wie zum Beispiel Bilder oder PDF-Dateien, die im System liegen, hinzufügen.

Parameter

Dem Parameter »filename« wird der komplette Dateiname inklusive Dateierweiterung übergeben, so wie er später im .zip enthalten sein soll.

Dem Parameter »xlink« muss der XLink auf die binäre Methode übergeben werden, die die binäre Datei erzeugt. Wird die binäre Datei direkt aus der Datenquelle gelesen, so kann der XLink auch nur aus der onion.net ID bestehen.

Als letzter Parameter kann »fromDataSource« angegeben werden um zu steuern, ob die binäre Datei aus der Datenquelle erzeugt wird. Wurde an den Parameter »xlink« der Verweis auf eine externe binäre Methode übergeben, so muss »fromDataSource« den Wert »false()« erhalten. Implizit ist der Wert »true()« gesetzt.

Beispiel

Folgendes Beispiel erzeugt einen leeren .zip-Binärstrom, fügt eine PDF-Datei hinzu, die nicht aus der Datenquelle gelesen wird, und erzeugt zuletzt die .zip-Datei.

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:b="http://onionworks.net/2004/renderengine/binary" xmlns:zip="http://onion.net/2010/compression/zip" xmlns:onion="http://onionworks.net/2004/data" version="1.0">
<xsl:template match="/">
<xsl:variable name="zip" select="zip:create(0, 'off')" />
<xsl:variable name="addItem" select="zip:addBinary('document.pdf', c.xlink('pdf'), false())" />
<xsl:value-of select="zip:finish()" />
<b:output mimeType="application/zip">
<b:webResponse dispositionType="attachment" filename="test.zip" />
</b:output>
</xsl:template>
</xsl:stylesheet>