Upload in DB

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Upload in DB

    Hallo ihr lieben Leute,

    ich denke, dieses Mal sollte meine Frage etwas leichter zu beantworten sein:

    Ich habe mich im Dateiupload versucht und der Upload an und für sich klappt wunderbar.
    Nun möchte ich aber, dass der Dateiname (BEACHTE: nicht die Datei selbst!) in einer Tabelle der Datenbank gespeichert wird. - Wie immer habe ich vorher schon gegoogelt aber letztendlich sind die angebotenen Scripte noch verwirrender geworden
    Hier der eigentliche Code zum Upload, den ich habe:

    PHP-Code:
    move_uploaded_file($_FILES["file"]["tmp_name"], $uploaddir.$_FILES['file']['name']); 
    Der Tabelle selbst habe ich lediglich das Feld Id (AutoInkrement) und 'file' (text) eingfügt. Der Upluad klappt mit meiner Datenbankanbindung ebenfalls allerdings bleibt das Feld 'file' leer.

    Wie müsste also:
    PHP-Code:
    mysql_query("INSERT INTO Tabelle ..."
    aussehen?

  • #2
    PHP-Code:
    $uploaddir.$_FILES['file']['name'
    ist der Dateiname. Das musst du halt in die DB schrauben!

    Kommentar


    • #3
      Na, du wirst doc wohl wissen, wie man ein INSERT Statement zusammen bekommt, oder? Wenn nicht, dann google doch einfach mal dannach ...
      [FONT="Helvetica"]twitter.com/unset[/FONT]

      Shitstorm Podcast – Wöchentliches Auskotzen

      Kommentar


      • #4
        Zur ersten Bemerkung: Uploaddir hatte ich vorher schon und es funktioniert! Die Frage bezog sich auf mysqlquerry!

        Zur zweiten Bemerkung:
        So, ich habe jetzt mal gegoogelt. Also, wie ich die VALUES usw. allgemein setzen kann ist mir schon klar. Allerings müssen diese sich ja auf die upgeloadete Datei hinweisen, also kann ich nicht einfach folgendes machen:

        PHP-Code:
        mysql_query("INSERT INTO Tabelle (file) VALUES ('".$_REQUEST['file']."')"); 
        ich muss daher wohl oder übel einen entsprechenden String entwickeln, der meine Vorstellungen verwirklicht.

        Kommentar


        • #5
          Naja, in $_FILES['file']['name'] steht der Dateiname ja drin (der vom User geschickt wird, und den man in jedem Fall nochmal untersuchen sollte). Wenn du einen anderen benutzt, kennst du den ja.
          [FONT="Helvetica"]twitter.com/unset[/FONT]

          Shitstorm Podcast – Wöchentliches Auskotzen

          Kommentar


          • #6
            ???

            Ich verstehe inzwischen nur noch mehr als Bahnhof!

            Für einen kokreten Hinweis wäre ich sehr dankbar!!!

            Kommentar


            • #7
              Was willst du denn noch für Hinweise. In dem von mir beschriebenen Array-Element steht der Dateiname, so wie du ihn auf deine Festplatte schreibst. Wie man ein Insert-Statement schreibt weißt du auch. Was brauchst du also noch?
              [FONT="Helvetica"]twitter.com/unset[/FONT]

              Shitstorm Podcast – Wöchentliches Auskotzen

              Kommentar


              • #8
                Naja, in $_FILES['file']['name'] steht der Dateiname ja drin (der vom User geschickt wird, und den man in jedem Fall nochmal untersuchen sollte). Wenn du einen anderen benutzt, kennst du den ja.
                Je nach Browser und dessen Einstellungen kann sogar der GANZE Clientpfad drinstehen!
                Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                Kommentar


                • #9
                  Am Besten den kompletten mysql_query-Befehl

                  Kommentar


                  • #10
                    PHP-Code:
                    $sql "INSERT INTO deineTabelle (file) VALUES('".mysql_real_escape_string($uploaddir.$_FILES['file']['name'])."')"
                    EDIT:

                    Nicht existente PHP Funktion ergänzt. Hättest ja einfach mal ins Manual schauen können

                    Zuletzt geändert von jahlives; 23.04.2008, 13:06.
                    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                    Kommentar


                    • #11
                      Fatal error: Call to undefined function mysql_real_escape() /upload.php


                      sorry... hatte den Anfang des befehls nicht gelesen...

                      nee aber trotzdem fehler - die Datei wird inzwischen zwar wieder(ohne Fehlermeldung hochgeladen aber die Tabelle nicht geändert <- hat noch nicht einmal eine zusätzliche id)
                      Zuletzt geändert von ACRDF; 23.04.2008, 13:16.

                      Kommentar


                      • #12
                        Manchmal liegt die einfachste Lösung doch so fern... (ich habs!!!)

                        PHP-Code:
                        mysql_query("INSERT INTO picupload (file) VALUES('".$uploaddir.$_FILES['file']['name']."')"); 
                        Trotzdem danke an alle, denen ich die nerven geraubt habe!

                        Kommentar


                        • #13
                          Manchmal liegt die einfachste Lösung doch so fern...
                          Wieso fern? Nur zwei Posts drüber
                          Und meine Lösung sichert die Usereingabe noch ab und schützt die DB vor möglichen SQL-Injections. Dass du den Tabellennamen noch anpassen musstest habe ich jetzt einfach mal vorausgesetzt, da du nirgends erwähnt hast wie deine Tabelle wirklich heisst
                          Hast du etwa einfach Copy&Paste gemacht??
                          Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                          [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                          Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                          Kommentar


                          • #14
                            Teilweise ja... allerdings habe ich schon den Tabellennamen auch geändert...

                            Kommentar

                            Lädt...
                            X