Ich habe jetzt eine .htaccess erstellt und diese in meinem Upload-Ordner gepackt (also in upload/intern/)- mit folgendem Inhalt:
Code: Alles auswählen
<Files *.*>
order allow,deny
deny from all
</Files>
Ich habe ein Layout erstellt mit folgendem Inhalt:
Code: Alles auswählen
<container id="1" name="Securitymodul" types="" mode="fixed" default="Securitymodul">Securitymodul</container>
Code: Alles auswählen
<?php
// hier pfad zum upload folder angeben, damit url kurz gehalten wird
// z.b. front_content.php?idartlang=23&filepath=filename.pdf
// sucht die datei in upload/securefiles/filename.pdf
$upload_path = 'upload/';
$arr_path_parts = array();
// wurde eine seite übergeben?
if ( isset($_GET["filepath"]) && !empty($_GET["filepath"]) ) {
$str_filepath = $upload_path . $_GET["filepath"];
$arr_path_parts = pathinfo($_GET["filepath"]);
$str_file = $arr_path_parts['basename'];
$size = filesize($str_filepath);
// erzinge das speichern unter fenster
header('Content-type: application/force-download');
// benne downloadnamen
header('Content-Disposition: attachment; filename="' . $str_file . '"');
header("Content-Transfer-Encoding: binary");
header("Content-Length: " . $size);
// lese datei ein ...
readfile($str_filepath);
}
?>
In einer geschützen Kategorie lege ich einen neuen Artikel an und geben diesen das Template "Securitytemplate"
So und nun habe ich stese's tolle Downloadmodul genommen und für mich die Counter-Geschichte mißbraucht (heißt auf deutsch - der Counter funktioniert bei dieser Dowloadgeschichte nicht ).
Also muss man in Modul-Template (jetzt aber das Template wo das Downloadmodul drin ist) nicht die Artikel idart für Downloadzähler angeben sondern die idart des Artikel mit dem Modul "Securitymodul". Man muss hier die idart angeben sonst funktioniert es auch nicht!
So und im Output von stese's Modul habe ich diese Zeile:
Code: Alles auswählen
$str_file_url = $sess->url("front_content.php?idart=" . $dllist_idart . "&changelang=" . $lang . "&client=" . $client . "&sse_idupl=" . $dllist_item->get("idupl") );
}
Code: Alles auswählen
$str_file_url = $sess->url("front_content.php?idart=" . $dllist_idart . "&changelang=" . $lang . "&client=" . $client . "&filepath=" . $dllist_item->get("dirname") . $dllist_item->get("filename") );
}
Was jetzt noch nicht so gefällt ist, das man in der Dateiverwaltung alle Dateien welche unter dem geschützen Ordner liegen (auch wenn Sie in zig Unterordnern erst auftauchen) nicht angezeigt werden! Man kann die Datein zwar bearbeiten, bzw. Ihr Schlüsselwörter zuweisen etc. aber leider nicht betrachten.