• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

MP4 Downloader

JulianMark

Neues Mitglied
Ich habe folgenden Code

Code:
<?php
$Datei = "videos/".$_GET['datei'];
$Dateiname = basename($Datei);
$Gros = filesize($Datei);
header("Content-Type: application/force-download");
header("Content-Disposition: attachment; filename='$Dateiname'");
header("Content-Length: $Gros");
readfile($Datei);
?>

Code:
http://meinewebseite.de/download.php?datei=Videodatei.mp4

Erstes Problem:
Die gedownloadeten Videos Können erst abgespielt werden, wenn man
vorne und am Ende ein ' löscht. Das sieht in etwa so aus: 'Videodatei.mp4'.

Zweites Problem:
Beim download wird die Größe nicht angezeigt. Da steht also nur:
2,5 MB von ? zum Beispiel.

Kann mir jemand diese beiden Probleme ohne großen Aufwand entfernen und
auch gut erklären, was ich tun muss, falls es komplizierter wird? :D Danke.
 
Werbung:
Hier liegt der erste Fehler:
Code:
header("Content-Disposition: attachment; filename='$Dateiname'");

Du darfst in einem Header keine ' verwenden (glaube ich mal irgendwo gelesen zu haben. Also einfach nur "filename=$Dateiname" fertig.

Bei deinem zweiten Problem... vielleicht liegts ja am ersten XD
 
Werbung:
Das liegt sicher an dieser Zeile:
Code:
$Gros = filesize($Datei);
Schreib da mal anstelle von $Datei $Dateiname...

Nicht das da irgendwie ein Konflikt ist ;)

### EDIT ###
nee.. sorry :D

Schau vorher mal bitte mittesl
Code:
if(file_exists($Datei))
nach obs die datei an dieser Stelle wirklich gibt ;)
Nicht das du einen fehlerhaften Dateipfad hast
 
Das liegt sicher an dieser Zeile:
Code:
$Gros = filesize($Datei);
Schreib da mal anstelle von $Datei $Dateiname...

Jetzt geht garnichts mehr. Habs wieder normal gemacht! :p

Schau vorher mal bitte mittels
Code:
if(file_exists($Datei))
nach obs die datei an dieser Stelle wirklich gibt ;)
Nicht das du einen fehlerhaften Dateipfad hast

Versteh ich jetzt nicht.. xD Aber die Datei existiert. Sie wird ja auch
problemlos runtergeladen. Das Problem ist ja, dass die Größe nicht
angegeben wird, mehr nicht. Ansonsten: kannst du das einfach in den
Code oben einbauen? Dann lad ich das hoch und teste :D
 
Werbung:
lass einfahc mal ein echo der Var $Gros ausgeben und schau ob da steht "undefined" oder sonstwas oder ob du wirklich eine größe bekommst.

Wenn du keine Größe bekommst, scheint was mit dem Pfad zu der Datei nicht zu stimmen.
 
Also folgender Code funktioniert bei mir super und wenn ich die Testausgabe aktiviere, zeigt er mir die Größe der Datei an....

Code:
<?php

$path = "videos/";
$Datei = $path.$_GET['datei'];

if(isset($_GET['datei']) && is_file($Datei))
{
    //warum das hier nochmal?? hast doch $_GET['datei']
    $Dateiname = basename($Datei);
    
    $Gros = filesize($Datei);
    //Testausgabe
    //echo $Gros;
    
    header("Content-Type: application/force-download");
    header("Content-Disposition: attachment; filename=$Dateiname");
    header("Content-Length: $Gros");
    readfile($Datei);
}else
    die("Keine Datei mit diesem Namen gefunden!");
?>

Eventuell musst du bei $path mal noch schreiben "./videos/";
 
Werbung:
Ich habe jetzt die Datei angehängt.
Kannst du das bitte mal so ändern, dass es hoffentlich funktioniert?
Das mit ("Keine Datei mit diesem Namen gefunden!"); versteh'
ich garnicht, weil man die Datei ja direkt auswählt. Braucht man also
nicht...
 

Anhänge

  • download.php.zip
    716 Bytes · Aufrufe: 2
soll ich jetzt deinen code schreiben oder wie?

Ich schaus mir morgen mal an. hab auch anderes zu tun!
Entweder du versuchst selber mal etwas (kannst ja nich viel falsch machen) oder du musst noch warten.
 
Werbung:
Zurück
Oben