- #1
L
Luca_
Aktives Mitglied
Themenersteller
- Dabei seit
- 22.03.2006
- Beiträge
- 36
- Reaktionspunkte
- 0
Ich habe folgendes Script welches mir Downloads aus einer Datenbank liest. Da drin stehen Sachen wie Filename, Grösse, wann es hinzugefügt wurde und vorallem der Pfad!
Der Pfad ist jetzt z.b. /dls/file.zip
/dls ist der Ordner->dls' im obersten Verzeichnis des HomeDirectorys meines Users
Das ganze liegt auf einem Sharedwebhoster mit linux, muss ich jetzt denn ganzen Linuxpfad angeben oder den Pfad von meinem HomeFolder aus?
also
/home/user/dls/file.zip
oder wie bereits in der DB
/dls/file.zip
?
das PHP File ist in /home/user/public_html. Und ich möchte *nicht* mit HTML den Pfad direkt angeben, also z.b. www.domain.de/dls/file.zip
sondern www.domain.de/dls.php?act=dl&id=3
somit möchte ich dann auch in einer weiteren Tabelle Statistiken führen was für Daten am meisten heruntergeladen werden und von wem etc etc.
Wenn ich dieses Script jetzt so ausführe kann ich ein file namens dls-file.zip herunterladen, welches aber kein richtiges zip file ist vom mime-type her und schon gar nicht das richtige file auf dem Server, mit dem inhalt den ich schlussendlich ja möchte
wie kann man das machen?
Der Pfad ist jetzt z.b. /dls/file.zip
/dls ist der Ordner->dls' im obersten Verzeichnis des HomeDirectorys meines Users
Das ganze liegt auf einem Sharedwebhoster mit linux, muss ich jetzt denn ganzen Linuxpfad angeben oder den Pfad von meinem HomeFolder aus?
also
/home/user/dls/file.zip
oder wie bereits in der DB
/dls/file.zip
?
das PHP File ist in /home/user/public_html. Und ich möchte *nicht* mit HTML den Pfad direkt angeben, also z.b. www.domain.de/dls/file.zip
sondern www.domain.de/dls.php?act=dl&id=3
somit möchte ich dann auch in einer weiteren Tabelle Statistiken führen was für Daten am meisten heruntergeladen werden und von wem etc etc.
Wenn ich dieses Script jetzt so ausführe kann ich ein file namens dls-file.zip herunterladen, welches aber kein richtiges zip file ist vom mime-type her und schon gar nicht das richtige file auf dem Server, mit dem inhalt den ich schlussendlich ja möchte
Code:
<?php
ob_start();
include('config.php');
include('head.php');
connect_to_db();
// alle downloads aus DB lesen und anzeigen
$sql = ...;
$result = mysql_query($sql) or die(mysql_error());
while ($row = mysql_fetch_assoc($result)) {
echo <a href='dls.php?act=view&amp;id=.$row['id'].'>.$row['title'].</a><br>\n;
}
switch (@$_GET['act']) {
case view:
// hier detailierte infos des downloads mit link
break;
case dl: // der teil der nicht richtig will
if (isset($_GET['id'])) {
// statistiken in DB schreiben
$sql = SELECT
*
FROM
dls
WHERE
id =->.$_GET['id'].';;
$result = mysql_query($sql) or die('no can do :-> . mysql_error());
$row = mysql_fetch_assoc($result);
$prefix = /home/sarnoxc/public_html;
$file_name = $row['path'];
$file = $prefix.$row['path'];
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.$file_name.'');
header('Content-Length:->.filesize($file));
readfile($file);
} else {
echo error;
} // if id end
break;
default:
echo default!;
} // switch end
include('foot.php');
ob_end_flush();
?>