vtDeliver

(Basic, Pro, Master ab 3.4.1)

Liefert eine Datei an den Benutzer aus.

Verwendung

<!--{{vtDeliver: %Pfad }}-->

<!--{{vtDeliver: %Pfad, %Dateiname }}-->
%Pfad

Lokaler Dateisystempfad zu der Datei, die ausgeliefert werden soll. Wenn der Pfad nicht mit einem Schrägstrich beginnt, wird er relativ zum Virthos-Verzeichnis interpretiert.

%Dateiname

(optional) Name, der im "Speichern"-Dialog des Webbrowsers als Vorschlag verwendet werden soll. Durch die Angabe eines Namens, erzwingt man den "Speichern"-Dialog auch bei Dateitypen, die der Browser normalerweise nur anzeigen, aber nicht als Datei speichern würde (z. B. Bilder).

Hinweise

Die vtDeliver-Anweisung macht es möglich, Dateien zum Herunterladen bereitzustellen, für die keine öffentliche URL existiert oder deren URL geheim bleiben soll. Insbesondere lassen sich damit auch Dateien ausliefern, die außerhalb des Webroot-Verzeichnisses oder innerhalb eines (z. B. per .htaccess-Direktive) geschützten Verzeichnisses liegen.

Bis Version 4.0.1 beendete vtDeliver die Skriptverarbeitung nach Auslieferung der Datei, so dass nachfolgende Anweisungen nicht mehr ausgeführt wurden. Seit Version 4.0.2 geschieht dies nicht mehr, und es ist möglich, das Ergebnis der Dateiauslieferung mittels vtResult abzufragen und weitere Aktionen anzuschließen. Mögliche Ergebnisse sind:

Ergebnis Bedeutung
-1 Datei existiert nicht
-2 Datei kann nicht zum Lesen geöffnet werden
-3 Download wurde abgebrochen
-4 beim Lesen der Datei trat ein Fehler auf
> 0 Auslieferung erfolgreich abgeschlossen, das Ergebnis entspricht der Anzahl an Bytes, die ausgeliefert wurden

Damit der ausgelieferten Datei am Ende nicht ungewollt weitere Zeichen hinzugefügt werden, ist es ratsam, vtDeliver und nachfolgende Anweisungen immer in einen vtScript-Block einzubinden und die Verarbeitung mit einer vtReturn-Anweisung zu beenden.

Beispiele

<!--
    {{vtDeliver: /public/files/brochure.pdf }}
    {{vtReturn}}
-->
<!--
    {{vtDeliver: {vtFilePath:Datei1} }}
    {{vtReturn}}
-->
<!--
    {{vtDeliver: {vtFilePath:Datei1}, {vtFileName:Datei1} }}
    {{vtIf: {vtResult} .gt. 0 }}
        {{vtDo: -act="mail", -subject="Download-Benachrichtigung", 
            -message="Datei {vtFilePath:Datei1} erfolgreich heruntergeladen" }}
        {{vtReturn}}
    {{vtEndIf}}
-->
<p>Beim Ausliefern der Datei ist ein Fehler aufgetreten.</p>

Siehe auch