http://onionworks.net/2006/data/application

createBinary (filename : string, mimeType : string) : string

Die Methode createBinary schreibt ein Binärdatenobjekt auf Basis einer physikalischen Datei oder einem Verweis auf eine binäre Methode in onion.net und gibt als Ergebnis den ReferenceIdentifier zurück. Dieser kann dann in einem Datenobjekt gespeichert werden und zwar in einem Element, das vom Typ xlink:binaryReference ist.

Sollte das binäre Objekt nicht in onion.net erzeugt werden können, so wird kein ReferenceIdentifier zurückgegeben.

Mit der Methode können beispielsweise Dateien, die über ein Formular des GenericForms-Moduls hochgeladen wurden, im onion.net Editor abgelegt werden. Denkbar wären hier zum Beispiel ein Avatar-Bild für ein Benutzer-Profil oder Anhänge für Wiki-Artikel.

Das folgende Beispiel zeigt, wie eine Datei aus einem GenericForms-Formular erzeugt und in ein Datenobjekt gespeichert wird.

<xsl:stylesheet xmlns:forms="http://onionworks.net/2004/renderengine/web/genericforms" xmlns:app="http://onionworks.net/2006/data/application" xmlns:onion="http://onionworks.net/2004/data" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/">
<xsl:variable name="tempFileRef" select="app:createBinary($forms:postData/form/file/@physicalFilename, $forms:postData/form/file/@mimetype)" />
<xsl:variable name="objectId">onion://data/objects/42</xsl:variable>
<xsl:variable name="data">
<node onion:schema="Onion:http://test.de/userprofile">
<file>
<xsl:value-of select="$tempFileRef" />
</file>
</node>
</xsl:variable>
<xsl:value-of select="c.choose(app:updateObject($objectId, $data), 'Successfull', 'Error')" />
</xsl:template>
</xsl:stylesheet>

Siehe auch