Hallo zusammen,
ich habe ein Upload-Skript geschrieben, das mir Daten aus dem Upload direkt in eine Datenbank Tabelle einträgt, mein Quellcode sieht hierfür so aus:
PHP-Code:
<?php
if($_GET['action'] == "upload")
{
// Auf Fehler überprüfen
if ($_FILES['datei']['error'] == UPLOAD_ERR_NO_FILE || $_FILES['datei']['error'] == UPLOAD_ERR_PARTIAL)
{
// die Datei wurde nicht oder nur teilweise hochgeladen
die("Die Datei wurde nicht korrekt hochgeladen. Bitte versuchen Sie es erneut.");
}
elseif ($_FILES['datei']['error'] == UPLOAD_ERR_FORM_SIZE || $_FILES['datei']['error'] == UPLOAD_ERR_INI_SIZE)
{
// die Datei ist zu groß
die("Die hochgeladene Datei ist zu groß.");
}
else
{
// Verbindung zur Datenbank
$db_host="localhost";
$db_name="upload";
$db_user="root";
$db_pw="";
function opendb()
{
global $db_host;
global $db_user;
global $db_pw;
global $db_name;
$verbindung = mysql_pconnect($db_host,$db_user,$db_pw);
if($verbindung)
{
if(!(mysql_select_db($db_name,$verbindung)))
{
$verbindung = FALSE;
echo "Keine Verbindung moeglich!";
}
return $verbindung;
}
}
// MySQL Verbindung öffnen
$db = opendb();
// Die Datei in den Zeilordner kopieren
$datei_name=$_FILES['datei']['name'];
$pfad="upload\\";
move_uploaded_file($_FILES['datei']['tmp_name'],"".$pfad.$datei_name);
// Groeße einlesen
$size = $_FILES['datei']['size'];
// Leerzeichen im Dateinamen werden mit einem Unterstrich ersetzt
//$dateiname = str_replace(" ", "_", $_FILES['datei']['name']);
// Und ab in die mySQL Tabelle...
$sql = "INSERT INTO files VALUES('', '".stripslashes($pfad)."', '".$datei_name."', '".$_FILES['datei']['type']."', '".$size."', '','','')";
echo $sql;
mysql_query($sql,$db);
echo "Datei-Upload erfolgreich.";
exit;
}
}
else
{
// Upload-Formular anzeigen
echo "<form method=\"post\" action=\"" . $PHP_SELF . "?action=upload\" enctype=\"multipart/form-data\">
<input type=\"hidden\" name=\"MAX_FILES_SIZE\" value=\"2097152\">
<input type=\"file\" name=\"datei\" maxlength=\"2097152\"><br>
<input type=\"submit\" name=\"submit\" value=\"Uploaden\">
</form>";
}
?>
Jetzt würde ich diese Datei gerne wieder herunterladen können, aber das will einfach nicht klappen. Mein Quellcode für den Download sieht derzeit so aus:
PHP-Code:
<?php
// Datei herunterladen
// Datenbankverbindung
mysql_connect("localhost", "root", "");
mysql_select_db("upload");
// Es wurde keine Datei ausgewählt -> alle Möglichkeiten anzeigen
$sql = "SELECT file_id, file_upload_folder, filename FROM files";
//echo $sql;
$result = mysql_query($sql);
var_dump($_SERVER['HTTP_HOST']);
while ($row = mysql_fetch_object($result)) {
//echo "<a href=\"".$PHP_SELF."?file_id=".$row->file_id."\">".$row->filename."</a><br>";
echo "<a href=\"".$_SERVER['HTTP_HOST']."\\".$row->file_upload_folder."\\".$row->filename."\">".$row->filename."</a><br>";
}
?>
Leider sieht man schon, dass auch der falsche Link verwendet wird, um die Datei runterzuladen, aber ich bekomme die Lösung einfach nicht hin
Die Uploads liegen unter: C:\xampp\htdocs\DBProjekt\upload
Kann mir hier jemand weiterhelfen?