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>