Zum Inhalt springen

File Upload unter PHP / MySQL


Empfohlene Beiträge

Hallo liebe Forumteilnehmer

Ich habe folgendes Problem:

Auf einer Webseite möchte ich den Inhalt selber uploaden oder löschen können. Im selben Formular möchte ich auch ein Bild auf den Server hochladen können.Nach meinen Vorstellungen möchte ich das Bild in eine MySQL Datenbank laden.

Der Code für das Uploadformular sieht folgendermassen aus:

siehe Anhang "occasionen_admin.txt"

Und die Funktion für die Bildverwaltung sieht so aus:

siehe Anhang "bildverwaltung.txt"

Um auch die Darstellung des "Gegen-Code" der eingegebenen Daten auf der entsprechenden Webseite zu verdeutlichen:

siehe Anhang "occasionen.txt"

Darstellung in der MySQL DB, Tabelle 'occasionen' :

CREATE TABLE `occasionen` (

`id` mediumint(8) unsigned NOT NULL auto_increment,

`rang` mediumint(8) unsigned NOT NULL default '0',

`bild` varchar(36) NOT NULL default '',

`titel` varchar(100) NOT NULL default '',

`text` text NOT NULL,

`preis` text NOT NULL,

`status` text NOT NULL,

PRIMARY KEY (`id`)

) TYPE=MyISAM AUTO_INCREMENT=1 ;

Mein grosses Problem ist, wie bekomme ich das Bild in die Datenbank? Und wie lässt es sich entsprechend im Web auf der Darstellungsseite anzeigen?

occasionen_admin.txt

bildverwaltung.txt

occasionen.txt

Link zu diesem Kommentar
Auf anderen Seiten teilen

Mal eine Frage wieso willst du das Bild in der Datenbank speichern?

Verschiebe es doch in einen Ordner Bilder gibt im einen eindeutigen Namen (z.B. ID) und Speicher diesen in der Datenbank.

Wenn du es wirklich als Bild in die DB bekommen möchtest brauchst du ein Binär Feld wo du es rein schreiben kannst. So soll es gehen habe es bis jetzt noch nicht gemacht da es die Datenbank nur unnötig vergrößert und die Abfragen langsam macht wenn das Bild eine gewisse größe erreicht hat.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Frank, vielen Dank für deine geschätzte Hilfe. Habe ein paar nützliche Scripts gefunden, wie löse ich es aber, dass es automatisch eine ID mit fortlaufender Nummer generiert? Das Bild soll eine ID in der DB erhalten als Verweis zum hochgeladenen Bild im Ordner auf dem Webserver (\images\web\pics).

Kannst du dir einmal die Text-Files mit dem Code im Anhang ansehen? Vielleicht kennst du eine Lösung oder weisst einen Tipp.

Hans

Link zu diesem Kommentar
Auf anderen Seiten teilen

Habe mal hier einen Ansatz zusammen geschrieben wie so ein Verschieben von einem Bild aussehen kann. So in der Art mache ich das in etwas natürlich sind da noch ein paar mehr Sicherheits abfragen bzw Überprüfungen drin aber das System wie es gehen soll wird klar.


/*
* des Formular zum senden des Bildes und der Daten wurde bereits gesendet
*/

//Daten in die Datenbank schreiben
// INSERT ...

//jetzt die letzte Autoincrement ID holen
$i_id = @ mysql_insert_id();

if ($_FILES['datei']['tmp_name']) {
// der Pfad zur Bilddatei
$src_img = $_FILES['datei']['tmp_name'];
$uploaddir = "./bilder/";
//Informationen zum Bild holen
$a_bild_daten = getimagesize($src_img);
// erstmal den Dateityp prüfen (*.gif, *.jpg, *.png)
switch ($a_bild_daten[2]) {
case 1 :
$postfix = ".jpg";
break;
case 2 :
$postfix = ".jpg";
break;
case 3 :
$postfix = ".png";
break;
case 13 :
$postfix = ".swf";
break;
}

if (move_uploaded_file($src_img, $uploaddir."bild_".$i_id.$postfix)) {
echo "Erfolg";
} else {
echo "Fehler";
}
}
[/PHP]

Link zu diesem Kommentar
Auf anderen Seiten teilen

Habe mal hier einen Ansatz zusammen geschrieben wie so ein Verschieben von einem Bild aussehen kann. So in der Art mache ich das in etwas natürlich sind da noch ein paar mehr Sicherheits abfragen bzw Überprüfungen drin aber das System wie es gehen soll wird klar.

Vielen Dank für Deine Zeit und geschätzte Hilfe, ich werde das sicher hinbekommen. Im Moment kämpfe ich aber noch damit, d.h., die Seite wird nicht korrekt angezeigt so dass ich auch keine Tests damit machen kann. Mir fehlt noch ein wenig Übung. Aber wenn man bedenkt dass ich vor drei Wochen noch keine Zeile PHP Code schreiben konnte ;-)

Der Code ist nun überarbeitet und sieht jetzt wie folgt aus (siehe Anhang "occasionen.txt"). Aber vielleicht siehst Du auf den zweiten Blick was ich nicht sehe...

occasionen.txt

Link zu diesem Kommentar
Auf anderen Seiten teilen

... Die Klammern sind es wohl nicht...
Doch es Fehlen sogar 2 schließende Klammern. Mach dir das Leben nicht schwerer als es ist versuche die vielen einzelen PHP Teile zu minimieren. Wenn es größere html Blöcke gibt nutze vielleicht EOT.


$s_inhalt = <<<EOT
//Hier steht viel HTML oder anderer Text!

EOT;
[/PHP]

Das vereinfacht die suche nach solchen Fehlern ungemein.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Doch es Fehlen sogar 2 schließende Klammern.

Vielen Dank für Deinen geschätzten Tipp, habs bis heute x-mal versucht und leider ( :( ) nicht hinbekommen. Eine andere Lösung wäre, das Ganze nochmals sauber zu programmieren. Ich hab allerdings nur noch bis morgen um 7.00 Uhr Zeit :D

Ich möchte mit diesem File-Upload eigentlich etwas simples: Nämlich ein PDF-Form und ein MP3-File auf den Server hochladen, danach im Frame unter dem entsprechenden Titel anclicken, das PDF ansehen und das MP3-File downloaden bzw. anhören können. Bisher habe ich noch keinen gescheiten Lösungsansatz gefunden....

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...