Poisonx: Bild hochladen per Formular und dann in eine Variable schreiben

Also ich habe das Problem das ich ein Bild einfach nicht in eine Variable schreiben kann.

Also ich habe Forumlar
<form enctype="multipart/form-data" action="einlesen.php" method="post">
<input type="hidden" name="MAX_FILE_SIZE" value="300000">
    <input name="bild" type="file">
  </p>
<input type="submit" name="senden" value="Senden">
</form>

Datei : einlesen.php

$bild = $_FILES['bild']['tmp_name'];

So bekomme ich aber nur die Adresse des Bildes in die Variable $bild.

Ich will aber das das komplette Bild dadrin gespeichert wird damit ich diese dann weiter verarbeiten kann.

Cu Dennis

  1. Hallo,

    $bild = $_FILES['bild']['tmp_name'];
    So bekomme ich aber nur die Adresse des Bildes in die Variable $bild.
    Ich will aber das das komplette Bild dadrin gespeichert wird damit ich diese dann weiter verarbeiten kann.

    Vermutlich solltest Du die Datei zuerst an ihren
    definitiven Standort verschieben und sie dann
    dort mit den geeigneten Datei-Funktionen oeffnen.

    Lies:
    http://www.dclp-faq.de/q/q-formular-upload-php4.html
    http://www.php.net/manual/de/ref.filesystem.php

    Gruesse,

    Thomas

    --
    Bitte keine Mails mit Fachfragen - dafuer gibt es das Forum!
    Ich mag es, wenn URLs verlinkt sind (</faq/#Q-19>).
    Oft gestellte PHP-Fragen beantwortet die dclp-FAQ bestens: http://www.dclp-faq.de/
    1. Hello,

      $bild = $_FILES['bild']['tmp_name'];
      So bekomme ich aber nur die Adresse des Bildes in die Variable $bild.
      Ich will aber das das komplette Bild dadrin gespeichert wird damit ich diese dann weiter verarbeiten kann.

      Vermutlich solltest Du die Datei zuerst an ihren
      definitiven Standort verschieben und sie dann
      dort mit den geeigneten Datei-Funktionen oeffnen.

      Er kann sie auch direkt aus der Temp-Datei in eine Variable einlesen....

      $bilddaten = file_get_contents($_FILES['bild']['tmp_name']);

      und schon ist's drin.

      Nur, was will Poisonx mit den Bilddatne in der Variable? Doch wohl nicht  mit

      header("Content-Type: img/jpeg");
      echo $bilddaten;

      Wieder ausgeben?

      Liebe Grüße aus http://www.braunschweig.de

      Tom

      --
      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
      1. Hello,

        $bild = $_FILES['bild']['tmp_name'];
        So bekomme ich aber nur die Adresse des Bildes in die Variable $bild.
        Ich will aber das das komplette Bild dadrin gespeichert wird damit ich diese dann weiter verarbeiten kann.

        Vermutlich solltest Du die Datei zuerst an ihren
        definitiven Standort verschieben und sie dann
        dort mit den geeigneten Datei-Funktionen oeffnen.

        Er kann sie auch direkt aus der Temp-Datei in eine Variable einlesen....

        $bilddaten = file_get_contents($_FILES['bild']['tmp_name']);

        So habe jetzt die Datei in der Variable.. aber wenn ich die Datei in meine Datenbank abspeichern möchte geht die ganze Anfrage nicht mehr. also er speichert gar nichts mehr in die Datenbank.. auch die anderen Variablen die ich habe werde nicht gespeichert.

        $bild = file_get_contents($_FILES['bild']['tmp_name']);

        $continu=1;
        if ($vorname == "")
        {
         print("Your name is needed !<br>");
         $continu=0;
        }

        if ($continu == 1)
        {

        $sql="INSERT INTO schueler (vorname, nachname, ort, telefon, handy, icq, email, homepage, betrieb, hobby, bild) VALUES ('$vorname', '$nachname', '$ort', '$telefon', '$handy', '$icq', '$email', '$homepage', '$betrieb', '$hobby', '$bild')";
         mysql_query($sql);
         print("Wurde erfolgreich gespeichert !") ;
        }

        1. Hallo,

          So habe jetzt die Datei in der Variable.. aber wenn ich die Datei in meine Datenbank abspeichern möchte geht die ganze Anfrage nicht mehr.

          <antwort modus="pavlov">
          dclp-FAQ: Ist es sinnvoll, Bilder in einer Datenbank abzulegen?
          http://www.dclp-faq.de/q/q-db-blob.html
          </antwort>

          $sql="INSERT INTO schueler (vorname, nachname, ort, telefon, handy, icq, email, homepage, betrieb, hobby, bild) VALUES ('$vorname', '$nachname', '$ort', '$telefon', '$handy', '$icq', '$email', '$homepage', '$betrieb', '$hobby', '$bild')";
          mysql_query($sql);
          print("Wurde erfolgreich gespeichert !") ;
          }

          Warum zum *%&@ laesst Du Dir die Fehlermeldung von MySQL nicht anzeigen?

          else
            { print("Speichern fehlgeschlagen: " . mysql_error()); }

          Und ist das Feld "bild" ueberhaupt geeignet, d.h. BLOB oder so?

          Gruesse,

          Thomas

          --
          Bitte keine Mails mit Fachfragen - dafuer gibt es das Forum!
          Ich mag es, wenn URLs verlinkt sind (</faq/#Q-19>).
          Oft gestellte PHP-Fragen beantwortet die dclp-FAQ bestens: http://www.dclp-faq.de/
          1. Warum zum *%&@ laesst Du Dir die Fehlermeldung von MySQL nicht anzeigen?

            else
              { print("Speichern fehlgeschlagen: " . mysql_error()); }

            Und ist das Feld "bild" ueberhaupt geeignet, d.h. BLOB oder so?

            Gruesse,

            Thomas

            Der Fehler kam... was heisst das?

            You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '[binaerer Inhalt]' at line

            1. Hallo,

              You have an error in your SQL syntax.

              Du hast immer noch nicht gesagt

              • weshalb Du das Bild in die DB speichern willst
              • ob das Feld geeignet ist.

              Wenn Du dem Link zur dclp-FAQ gefolgt waerst,
              haettest Du auf
              http://www.dclp-faq.de/q/q-db-blob.html
              den Link zum verwandten Artikel
              Wie kann ich Bilder in einer MySQL-Datenbank speichern?
              http://www.dclp-faq.de/q/q-mysql-blob.html
              gesehen und waerst von dort aus auf
              http://www.phpbuilder.com/columns/florian19991014.php3
              und die Fortsetzung
              http://www.phpbuilder.com/columns/florian19991014.php3?page=2
              gestossen.

              Gruesse,

              Thomas

            2. Hello,

              Warum zum *%&@ laesst Du Dir die Fehlermeldung von MySQL nicht anzeigen?

              { print("Speichern fehlgeschlagen: " . mysql_error()); }

              Und ist das Feld "bild" ueberhaupt geeignet, d.h. BLOB oder so?

              Der Fehler kam... was heisst das?

              You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '[binaerer Inhalt]' at line

              Na, der Fehler kam bei den Bilddaten.
              MySQL ist eine SQL-Datenbank. Die SQL-Schnittstelle ist eine TEXTSchnittstelle. Das heißt, man darf dort nur Texte übergeben. Allerdings gibt es Ausnahmeregeln. Wenn der Text nun Zeichen enthält, die in diese Ausnahmeregel fallen, dann muss man der Schnittstelle das sagen: Achrung, hier kommt ein Zeichen, dass Du ausnahmsweise auch als Text ansehen musst.

              Diese Umwandlung macht man mit mysql[_real]_escape_string().

              Die Funktion markeiert (escaped) die Sonderzeichen so, dass MySQL sie annehmen kann. In der DB steht dann nur der gewünschte "Text", der ja nun in Wirklichkeit ein Bild ist. Wenn man ihn wieder rausholt, sind nur die ursprünglichen Bild-Bytes enthalten. Die Maskierung wurde nicht mit abgespeichert.

              Liebe Grüße aus http://www.braunschweig.de

              Tom

              --
              Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen