Skip to main content

Pfade und Dateinamen erhalten

Folgendes Szenario: Wir möchten gerne die Pfade und Dateinamen aus dem Fileadmin erhalten und verhindern, dass die Dateiein im Uploads-Ordner gespeichert werden. Der Grund ist der, dass die Datei, die zum Download bereitgestellt wird, immer gleich heißen muss, die Version der Datei aber geändert wird. Als Beispiel nehmen wir ein TYPO3 Logo. Wird das Logo geändert, soll der "Kunde" immer das aktuelle Logo herunterladen und in seine Seite einbinden können. Würde das Logo in Uploads gespeichert werden, dann hieße es Logo01, Logo02 etc.

Also erstellen wir im fileadmin ein Verzeichnis, in dem diese Datei gespeichert wird. Über den Typ Dateiverweis ordnen wir nun anstelle des einzelnen Bildes den Pfad zu. Ein Klick auf das Bild vergrößert das Bild. Dann kann man besser erkennen, wie der Pfad zugewiesen wird.

Verzeichnis zum Download mit TYPO3 6.x

Unter TYPO3 6.x funktioniert die Zuweisung des Pfades ein wenig anders. Damit also Datensätze aus einem bestimmten Verzeichnis angezeigt werden, muss zunächst eine Datensammlung erstellt werden. Dazu wählen Sie im Modul Liste Neuen Datensatz anlegen und unter SystemdatensätzeDateisammlung aus.

Dateispeicher anlegen

Vergeben Sie nun einen sprechenden Titel und wählen bei TYPOrdner von Speicher aus. Bei Dateispeicher wählen Sie das den Speicherort, also hier den fileadmin aus. Über Ordner können Sie jetzt das Verzeichnis im fileadmin auswählen, dessen Daten zum Download bereitgestellt werden sollen.

Dateispeicher zuweisen

Dieses Verzeichnis muss nun zugewiesen werden. Also erstellen Sie einen Datensatz vom Typ Dateiverweis und weisen den entsprechenden Ordner über Dateisammlung auswählen zu. In diesem Fall der Ordner Download Datensammlung. In unserem Beispiel wurde der Ordner auf der gleichen Seite angelegt, auf der sich diese Dateiverweise befinden.

Upload via FTP

Soweit - so gut. Das funktioniert schon einmal. Wenn man mit der Maus über den Dateinamen fährt, dann sieht man den korrekten Pfad und Dateinamen (s. Abb unten Download aus einem Verzeichnis).

Lade ich aber eine neue Datei gleichen Namens via FTP auf den Server - in diesem Fall ein Bild in anderer Farbe, dann klappt es eben nur dann, wenn man das Bild anklickt und diese Seite (im neuen Fenster) neu lädt. Das kann man aber keinem Kunden zumuten. Woher soll er auch wissen, dass sich die Datei geändert hat.

Also muss der Browsercache deaktiviert werden. Das funktioniert via .htaccess.

Aber im konkreten Beispiel soll das nur für einen bestimmten Dateityp gelten. Denn den Cache generell auszuschalten ist nicht die beste Idee.

Nehmen wir als Beispiel z. B. eine *.exe Datei. Die will ich im Browser gar nicht cachen. Und das schaffe ich mit der Nennung in FilesMatch und der letzten Zeile in mod_expires.c, im unten aufgeführten Beispiel fett markiert.

  # Expires Header + Removal of ETag
<FilesMatch "\.(ico|png|gif|js|css|jpg|jpeg|swf|bmp|flv|pdf|svg|tif|tiff|exe)">
<IfModule mod_expires.c>
        ExpiresActive on
        ExpiresDefault "access plus 2 months"
        ExpiresByType image/x-icon "access plus 1 months"
        ExpiresByType image/jpg "access plus 1 months"
        ExpiresByType image/gif "access plus 1 months"                                                            
        ExpiresByType image/gif "modification plus 5 days"
        ExpiresByType image/jpeg "access plus 1 months"
        ExpiresByType image/png "access plus 1 months"
        ExpiresByType image/ico "access plus 1 months"
        ExpiresByType text/css "access plus 1 months"
        ExpiresByType text/javascript "access plus 1 months"
        ExpiresByType application/javascript "access plus 1 months"
        ExpiresByType application/x-shockwave-flash "access plus 1 months"
        ExpiresByType application/exe "modification plus 0 days"   
</IfModule>

Download aus einem Verzeichnis