Nochmal Dateidownload
Tanka
- php
Ich muss leider nochmal hierauf verweisen, weil ich es einfach nicht geregelt kriege: http://forum.de.selfhtml.org/?t=69084&m=397706
Bitte, Bitte hleft mir nochmal
Hallo,
poste mal das Teilscript , sonst kann man dir nicht helfen.
Schau auch mal im Archiv nach , die Liste über dieses Thema ist echt lang.
MfG
Christian
Hallo,
poste mal das Teilscript , sonst kann man dir nicht helfen.
Schau auch mal im Archiv nach , die Liste über dieses Thema ist echt lang.MfG
Christian
Also das Skript findet sich hier http://www.dclp-faq.de/q/q-datei-download.html
Kann mir jemand helfen??
Grundlage ist immer noch http://www.dclp-faq.de/q/q-datei-download.html
Ich habe Bilder (z.B. test.jpg) in Bilder/upload/ gespeichert (durch .htaccess gesichert).
Jetzt möchte ich es zum Download anbieten.
Durch <?php echo $_SERVER["DOCUMENT_ROOT"] ?> habe ich $basedir herausbekommen.
So bei file1 => habe ich jetzt nur noch "Bilder/upload/test.jpg" stehen. Diesen Variablennamen (test.jpg) bekomme ich auch schon per $download = $_GET['bild'];
Aber es funktioniert nicht. Könnt ihr mir sagen, woran es liegt??
Fehlermeldung ist folgende: Datei test.JPG nicht vorhanden.
Also,
wenn du das Script so übernommen hast, müsste es funzen. Desshalb kontrolliere mal bitte die Schreibweise (groß klein). Linux ist im Gegensatz zu Windows Case-Sensitiv.
MfG
Christian
Hello,
unter http://bitworks.de/~selfHTML/speichern.php hatte ich immer ein Script, dass auch eine sendfile-Funktion enthält. Habe allerdings schon Tage nicht mehr geschaut, ob es noch geht und ob es schon wieder Verbesserungsvorschläge gibt.
Der Unterschied zu herkömmlichen Scripten ist hierbei, dass PHP einen Content-Type "multipart/mixed" erzeugt (zumindest erzeugen soll) und man daher gleichzeitig sowohl File als auch HTML-Seite übertragen kann.
Nach einigen Nachbesserungen hat es auch immer funktioniert (dependent of PHP-Versions and Browsers).
Liebe Grüße aus http://www.braunschweig.de
Tom
Mein Skript sieht jetzt so aus:
<? //$download sei der Bezeichner für die zu ladende Datei
// etwa:
$download = $_GET['bild'];
// Dieses Verzeichnis liegt außerhalb des Document Root und
// ist nicht per URL erreichbar.
$basedir = "/data/members/free/tripod/de/x/x/x/xxxxx/htdocs/";
// Übersetzung von Download-Bezeichner in Dateinamen.
$filelist = array(
"file1" => "bild.jpg"
);
echo $file1;
// Einbruchsversuch abfangen.
if (!isset($filelist[$download]))
die("Datei $download nicht vorhanden.");
// Vertrauenswürdigen Dateinamen basteln.
$filename = sprintf("%s/%s", $basedir, $filelist[$download]);
// Passenden Datentyp erzeugen.
header("Content-Type: application/octet-stream");
// Passenden Dateinamen im Download-Requester vorgeben,
// z. B. den Original-Dateinamen
$save_as_name = basename($filelist[$download]);
header("Content-Disposition: attachment; filename="$save_as_name"");
// Datei ausgeben.
readfile($filename);
?>
Alle erforderlichen Datein liegen jetzt mal im Stammverzecihnis, welches durch .htaccess geschützt ist. Von einer Datei get.php wird "bild.jpg" übertragen".
Trotzdem läuft es immer noch nicht. Könnt ihr mir sagen, wo der Fehler liegt??
Ich wäre euch sehr, sehr verbunden!!! :-)