Probleme mit dem Upload von SVG-Dateien unter WordPress

Medien können über die Medienverwaltung unter WordPress hochgeladen werden. Dabei findet eine Überprüfung statt, ob ein bestimmter Dateityp erlaubt ist. Schlägt diese Überprüfung fehl, so wird dies mit einer entsprechenden Fehlermeldung quittiert.

Der Upload ist fehlgeschlagen

Die entsprechende Meldung:

Dieser Dateityp ist aus Sicherheitsgründen leider nicht erlaubt.

bzw. das Verhalten, welches zu dieser Meldung führt, kann dabei über einen Parameter in der Datei wp-config.php deaktiviert werden:

define( 'ALLOW_UNFILTERED_UPLOADS', true );

In der Theorie werden hiermit alle Uploads in WordPress zugelassen. Dies sollte natürlich nur getan werden, wenn dies explizit gewünscht ist. Daneben existieren Plugins, um nur bestimmte Dateien zum Upload zuzulassen.

In meinem Fall konnte ich eine spezielle SVG-Datei, trotz aktivierter ALLOW_UNFILTERED_UPLOADS-Option, allerdings immer noch nicht hochladen. Das Problem ist hier, das bei SVG-Dateien Sicherheitsbedenken bestehen, da es sich um XML-Dateien handelt; genaueres kann im entsprechenden Ticket nachgelesen werden.

In meinem Fall half in es der SVG-Datei folgenden Header:

<?xml version="1.0" encoding="utf-8"?>

an den Anfang der Datei zu setzen; anschließend konnte die entsprechende SVG-Datei hochgeladen und verarbeitet werden.

nbsp; in XML

Im HTML existiert für das geschützte Leerzeichen die HTML-Entity:

nbsp;

Bei bestimmten Frameworks aus dem HTML5-Bereich wie Framework 7 kann diese Entity allerdings nicht genutzt werden, da z.B. Unterseiten als XML interpretiert werden und der Parser in diesem Fall mit einer Fehlermeldung reagieren würde. Stattdessen kann für das geschützte Leerzeichen das Zeichen:

&#160;

genutzt werden. Bei diesem Zeichen handelt es sich ebenfalls um das geschützte Leerzeichen.

Domänenspezifische Sprache für Tests von REST-Schnittstellen

Eine domänenspezifische Sprache, kurz DSL, ist eine auf ein bestimmtes Problemfeld abgestimmte Sprache. Mit dem freien REST Assured existiert eine solche Sprache für den effektiven Test von REST-Schnittstellen. Genutzt wird REST Assured hauptsächlich unter Java und Groovy. Eine einfache Überprüfung des Statuscodes einer API-Anfrage würde in REST Assured wie folgt aussehen:

given().get("api.example.com").then().assertThat().statusCode(200);

Daneben sind auch komplexe Tests wie die Auswertung von zurückgegebenen JSON-Strukturen und Daten, sowie die Verknüpfung unterschiedlicher Bedingungen ohne Probleme zu implementieren. Eine große Übersicht über die Möglichkeiten von REST Assured bietet der Usage-Guide des Projektes.

rest-assured.io

Die Projektseite von REST Assured ist unter rest-assured.io zu finden. Der unter der Apache Lizenz (Version 2.0) lizenzierte Quellcode kann auf GitHub gefunden werden.

WADL-Dateien validieren

Bei WADL handelt es sich um die Web Application Description Language – eine Sprache mit der hauptsächlich REST-Services beschrieben werden. Auch wenn WADL in den letzten Jahren nicht mehr wirklich zum heißen Eisen gehört, wird es dennoch ab und an genutzt.

Ein WADL-Beispiel von Oracle.

Ein WADL-Beispiel von Oracle.

Möchte man eine solche WADL validieren, so kann man diese mit einem XML-Validator gegen das WADL-Schema validieren. Möglich ist dies z.B. mit folgendem Online-XML-Validator. Nachdem die zu überprüfende WADL im Validator eingetragen wurde, gibt man die URL:

https://www.w3.org/Submission/wadl/wadl.xsd

als Schema-URL an. Anschließend kann die XML-Datei gegen das XSD-Schema validiert werden.

SoundHelix

Musik per Algorithmus zu erzeugen klingt im ersten Moment abwegig, allerdings gibt es einige Personen und Projekte welche sich genau damit beschäftigen. Eines dieser Projekte ist dabei SoundHelix. Bei dieser in Java geschriebenen Anwendung handelt es sich um ein System mit welchem Musik algorithmisch erzeugt werden kann. Die erzeugte Musikstücke klingen dabei durchaus angenehm. Konfiguriert wird das System und deren Musik über eine XML-Datei.

soundhelix.com

soundhelix.com

Lizenziert ist SoundHelix unter der GPL und damit freie Software. Der Quelltext kann auf SourceForge bezogen werden. Zu finden ist das Projekt auf der offiziellen Seite unter soundhelix.com. Es ist dabei unter Linux, Mac OS X und Windows lauffähig.