Hochgeladene Dateien des Benutzerverzeichnises im Frontend anzeigen

von Marco Simbürger

  • Formular für Datei-Upload via Formulargenerator erstellen
    • Feld-Typ "Datei-Upload"
    • Hochgeladene Dateien speichern
    • Benutzerverzeichnis verwenden
  • Formular einbinden
  • Im Ordner /templates eine html5-Datei erstellen (z.B. show_files.html5)

Folgender Code einfügen:

$this->import('Database');
$result = $this->Database->prepare("SELECT f.path FROM tl_files f INNER JOIN tl_member m ON f.uuid = m.homeDir WHERE m.id=?")->execute($this->replaceInsertTags(''));
$homedir = $result->fetchAssoc();
$handle=opendir($homedir["path"]);

//Delete file
if(\Input::post('file')!=""){
	$path=$homedir["path"].'/'.\Input::post('file');
	if(file_exists($path)){
		unlink($path);
		echo 'Die Datei "'.\Input::post('file').'" wurde gelöscht.';
	}
	else {
		echo 'Datei "'.\Input::post('file').'" existiert nicht.';
	}
}

//Show files
echo '<ul>';
while ($file = readdir ($handle)) {
	if($file!="." && $file!="..")
 		echo '<li>
 				<a href="'.$homedir["path"].'/'.$file.'" target="_blank"><img src="'.$homedir["path"].'/'.$file.'" style="height:50px; width:50px;" />'.$file.'</a>
 				<form action="'.$this->replaceInsertTags('tech-blog/hochgeladene-dateien-des-benutzerverzeichnises-im-frontend-anzeigen.html').'" method="post" enctype="application/x-www-form-urlencoded">
 					<input type="hidden" name="FORM_SUBMIT" value="deleteFile">
      				<input type="hidden" name="REQUEST_TOKEN" value="'.$this->replaceInsertTags('').'">
 					<input type="hidden" name="file" value="'.$file.'"><input type="submit" value="Löschen">
 				</form>
 			 </li>';
}
echo '</ul>';

closedir($handle);

Die Datei dann auf der entsprechenden Seite via Insert-Tag einfügen:

{{file::template/show_files.html5}}

 

Zurück

Kommentare

Einen Kommentar schreiben

Was ist die Summe aus 8 und 4?