Ich habe folgende kleine Frage.
Ich habe ein Uploadscript gemacht, dass Dateien im Binär Format in einer Mysql speichert.
Ich habe eine spalte mit Longblob für die Binärdaten und eine für den Dateinnamen.
Bis jetzt downloade ich so das file und das klappt auch:
Allerdings heißt so jeder Download: download.*
Ich möchte aber, dass er den namen aus der spalte der Tabelle nimmt und dann unter diesem namen herunterläd.
Dateiname: download.php
Dateiname: archiv.php
Ich habe ein Uploadscript gemacht, dass Dateien im Binär Format in einer Mysql speichert.
Ich habe eine spalte mit Longblob für die Binärdaten und eine für den Dateinnamen.
Bis jetzt downloade ich so das file und das klappt auch:
Allerdings heißt so jeder Download: download.*
Ich möchte aber, dass er den namen aus der spalte der Tabelle nimmt und dann unter diesem namen herunterläd.
Dateiname: download.php
PHP:
<?php
if (isset($_REQUEST['id'])){
$id=$_REQUEST['id'];
$db=mysql_connect("localhost","root","")
or die ("Keine Verbindung zum Datenbankserver: ".mysql_error($db));
mysql_query("USE hadabank")
or die ("Keine Verbindung zum Datenbankserver: ".mysql_error($db));
$anfrage="SELECT datei FROM downloadarchiv_data WHERE id='".$id."'";
$ergebnis=mysql_query($anfrage)
or die ("Datenbankerror: ".mysql_error($db));
if ($ergebnis) {
$zeile=mysql_fetch_row($ergebnis);
$data=$zeile[0];
header("Content-Type:audio/mpeg");
print ($data);
}
mysql_close($db);
}
?>
Dateiname: archiv.php
PHP:
<?php
$db=mysql_connect("localhost","root","");
$anfrage="USE hadabank";
mysql_query($anfrage);
$anfrage="SELECT * FROM downloadarchiv_data";
$ergebnis=mysql_query($anfrage);
if ($ergebnis) {
$anz=mysql_num_rows($ergebnis);
print ("<table border='1'>");
print ("<th>Songname</th><th>Beschreibung</th>");
print ("<th>Dateigröße<br>(kByte)</th>");
for ($a=0; $a<$anz;$a++) {
print ("<tr>");
$zeile=mysql_fetch_row($ergebnis);
print ("<td>");
print ("<a href='download.php?id=".$zeile[0]."'>".$zeile[1]."</a></td>");
print ("<td>".$zeile[2]."</td>");
print ("<td>".round(($zeile[3]/1024),2)."</td></tr>");
}
print ("</table>");
}
else {
print ("Zur Zeit leider keine Dateien zum Download");
}
mysql_close($db);
?>
Last edited by a moderator: