Habe heute morgen schon wieder ein Stück geschafft.
Hier der Code:
PHP-Code:
<?php
// Wurzelverzeichnis der Videodateien
$root = "E:/Media/Video/";
// Setzen des aktuellen Pfades
if(!empty($_GET['path'])){
$path = $_GET['path'];
}
else{
$path = $root;
}
// Wechseln des Pfades zu einer anderen Ebene
if(!empty($_GET['folder'])){
// eine Ebende nach oben
if($_GET['folder']=="back" && $path!=$root){
$path = dirname($path)."/";
}
// eine Ebene tiefer
elseif($_GET['folder']!="back"){
$path .= $_GET['folder']."/";
}
}
// Laden einer Datei
if(!empty($_GET['file'])){
$file = $path.$_GET['file'];
$Dateiname = str_replace(" ", "_", basename($file));
$size = filesize($file);
header("Content-Type: application/force-download");
header("Content-Disposition: attachment; filename=$Dateiname");
header("Content-Length: $size");
readfile($file);
}
?>
<html>
<head></head>
<body>
<h1>Movies</h1>
<?php
// TEST LINKS
echo"<p>
<a href=\"index_movies2.php?path=$path&folder=back\">zurück</a><br>
<a href=\"index_movies2.php?path=$path&folder=movies2\">Movies 2</a><br>
<a href=\"index_movies2.php?path=$path&folder=Babel\">Babel</a>
</p>";
// aktueller Pfad
echo "<p>$path</p>";
// einlesen eines Verzeichnisses und Ausgabe von Links
// unterscheidung zwischen Ordnern und Dateien
$handle = opendir($path);
while($file = readdir($handle)){
if($file!="." && $file!=".." && is_dir($path.$file)){
echo "<a href=\"index_movies2.php?path=$path&folder=$file\">$file</a><br>";
}
elseif($file!="." && $file!=".." && !is_dir($path.$file)){
echo "<a href=\"index_movies2.php?path=$path&file=$file\">$file</a><br>";
}
}
closedir($handle);
?>
</body>
</html>
Das Problem hierbei ist jedoch, dass sehr große Dateien nicht korrekte geladen werden. In einem Ordner beispielsweise sind zwei Videodateien á ~40MB und eine á ~ 2GB. Die kleinen öffnen sich im Player, die große kann nicht wieder gegeben werden. Wähle ich stattdessen speichern unter, so werden die kleinen korrekt gespeichert, die große jedoch nicht (leere Datei -> 0kb). Dies ist jedoch nur im IE zu beobachten, im Firefox läuft es.
ABER... das ist nicht das gewünschte. Denn auch wenn ich die Dateien teilweise schon öffnen kann, so werden sie doch immer zwischengespeichert... Das soll eben umgangen werden.
Wie geht denn das bloß???
Gruß Benny