Danke für die Ratschläge...
Aber die Aufgabenstellung lautet wie folgt...
-Erstellung eines Upload Tools in php und mysql...
Dabei soll natürlich nicht die Datei an sich in der Datenbank gespeichert werden... sondern nur der hash() Wert sowie die id und der Dateiname...
Sql Injection ist nicht zu befürchten, da es sich um einen lokalen Testserver handelt...
php Code wurde gestern noch weiter bearbeitet... sieht jetzt folgendermassen aus... Für Hilfe wäre ich sehr dankbar...
PHP-Code:
<?php
include('inc.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 {
// die Datei wurde korrekt hochgeladen
// hier sind die mySQL Daten einzufüllen
@mysql_connect("localhost", "root", "asdasd");
@mysql_select_db("bildup");
// Temporäre Datei schreiben (ist wegen der Lese-Rechte nötig)
// und auf die temp-Datei Lese Rechte vergeben
move_uploaded_file($_FILES['datei']['tmp_name'], "./tempfile.tmp");
chmod("./tempfile.tmp", 0644);
// Daten aus Temp-Datei einlesen
$zeiger = fopen("./tempfile.tmp", "rb");
$size = $_FILES['datei']['size'];
// den Dateiinhalt in $data speichern
$data = fread($zeiger, $size);
fclose($zeiger);
// Temporäre Datei löschen
@unlink("./tempfile.tmp");
// Damit die Datei jetzt in die mySQL Tabelle kann müssen wir sie vorher kodieren:
$data = base64_encode($data);
$hash = md5($filename . "_" . time());
// Leerzeichen im Dateinamen werden mit einem Unterstrich ersetzt
$dateiname = str_replace(" ", "_", $_FILES['datei']['name']);
// Und ab in die mySQL Tabelle...
$sql = "
INSERT INTO
bildup
([bild_1], [bild_2], [bild_3],[tstamp], [hash], [filename], [data], [size])
VALUES (
$b1,
$b2,
$b3,
$hash,
$filename
$data
$size
)
";
@mysql_query($sql);
if ( mysql_error()) {
echo mysql_error(); exit;
}
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>";
}
?>