Upload-Daten in XML schreiben

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

  • Upload-Daten in XML schreiben

    Hallo,

    ich möchte euch mal was fragen, da ich unter google nichts gefunden habe

    Ich habe ein Uploadscript, was auch klappt. Nur möchte ich das der Pfad (unter dem die Datei abgelegt wird) in eine XML Datei geschrieben wird. Da ja das Inputfeld als type="file" definiert werden muss und nicht als type="text", schaffe ich es nicht, den Pfad in eine xml datei zu schreiben.

    PHP-Code:
    <input type="file" name="MyFile"
    Nun wollte ich euch mal fragen, ob das überhaupt geht.

  • #2
    Bitte nochmal formulieren. Was soll warum wann in eine XML-Datei?

    Kommentar


    • #3
      Nun wollte ich euch mal fragen, ob das überhaupt geht.
      Natürlich geht das !
      Du lädst die Datei nach oben, danach verschiebst du sie mittel move_uploaded_file() ins gewünschte Zielverzeichnis. Da du move_uploaded_file() ja angeben musst wohin die Datei verschoben werden soll, hast du ja auch den Namen, den du in die XML Datei schreiben willst.

      Gruss

      tobi
      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


      • #4
        ja per javascript.

        leg dir ein input vom type="hidden" an.

        und dann:

        document.getElementByName('MyHiddenField')[0].value = document.getElementByName('MyFile')[0].value;

        so sollte es gehen.

        // ach mist. falsch verstanden bzw. gelesen...

        Kommentar


        • #5
          Original geschrieben von jahlives
          Natürlich geht das !
          Du lädst die Datei nach oben, danach verschiebst du sie mittel move_uploaded_file() ins gewünschte Zielverzeichnis. Da du move_uploaded_file() ja angeben musst wohin die Datei verschoben werden soll, hast du ja auch den Namen, den du in die XML Datei schreiben willst.

          Gruss

          tobi
          Hallo,

          also mein Problem besteht auch darin, das ich ein Formular habe.

          //
          Name:
          Alter:
          ...
          Bild:
          //

          Diese Daten werden dann in eine XML Datei gespeichert. Nun möchte ich, dass man auch ein Bild hochladen kann. Der Pfad soll dann auch gespeichert werden.

          Nun habe ich das Problem, dass wenn man auf speichern klickt, soll das Bild hochgeladen und die Formulardaten abgespeichert werden.

          Wie kann ich das also kombinieren?

          Hier mal mein Upload script:

          PHP-Code:
          <?php
          function GetFileError($num)
          {
              
          $err "Kein Fehler ($num)";
              switch (
          $num)
              {
                  case 
          UPLOAD_ERR_OK:
                      break;
                  case 
          UPLOAD_ERR_INI_SIZE:
                      
          $err "Die in der php.ini festgelegte Größe wurde überschritten";
                      break;
                  case 
          UPLOAD_ERR_FORM_SIZE:
                      
          $err "Die im Formular festgelegte Größe wurde überschritten";
                      break;
                  case 
          UPLOAD_ERR_PARTIAL:
                      
          $err "Es wurde nur ein Teil der Datei hochgeladen (Abbruch)";
                      break;
                  case 
          UPLOAD_ERR_NO_FILE:
                      
          $err "Es wurde keine Datei hochgeladen";
                      break;
              }
              return 
          $err;
          }


          $action $_SERVER['PHP_SELF'];
          if (
          $_SERVER['REQUEST_METHOD'] == 'POST')
          {
              if (
          is_array($_FILES))
              {
                  
          $tmp $_FILES['MyFile']['tmp_name'];
                  
          $target "upload/{$_FILES['MyFile']['name']}";
                  
          $error GetFileError($_FILES['MyFile']['error']);
                  echo 
          "Dateien wurden hochgeladen:<br>";
                  echo <<<FILEDATA
          <ul>
              <li>Lokaler Name: 
          {$_FILES['MyFile']['name']}</li>
              <li>MIME-Typ:     
          {$_FILES['MyFile']['type']}</li>
              <li>Größe:        
          {$_FILES['MyFile']['size']} Byte</li>
              <li>Temporärname: 
          {$tmp}</li>
              <li>Fehler:       
          {$error}</li>
              <li>Lokaler Name: 
          {$_FILES['MyFile']['name']}</li>
          </ul>
          FILEDATA;
                  if (
          move_uploaded_file($tmp$target))
                  {
                      echo 
          "<p>Datei übertragen. Aktueller Inhalt des Verzeichnisses:<p/>";            
                      foreach (
          glob(dirname($target).'/*') as $file)
                      {
                          
          printf('<a href="%1$s">%1$s</a><br>'$file);
                      }
                  }
                  else 
                  {
                      echo 
          "Keine Datei übertragen";
                  }
              }

          else 
          {
              echo 
          "Bitte Datei hochladen (100 KB maximal)";
          }
          ?>

          und mein Formular zum Speichern der Daten:

          PHP-Code:
          <?php
          if (!isset($abschicken)) {
              
              
              
          $filename "beitrag.xml";

          $addTxt "<movie id=\"$id\">
          <name>
          $name</name>
          <art>
          $art</art>
          <kategorie>
          $kategorie</kategorie>
          <jahr>
          $jahr</jahr>
          <preis>
          $preis</preis>
          <label>
          $label</label>
          <beschreibung>
          $beschreibung</beschreibung>
          <thumb>
          $thumb</thumb>
          <MyFile>
          $MyFile</MyFile>//<- Hier muesste der Pfad stehen
          </movie>"
          ;

          $fp fopen$filename,"r");
          $xmlCtn file($filename);  
          unset(
          $xmlCtn[0]);
          unset(
          $xmlCtn[count($xmlCtn)]);
          $newXmlCtn implode(""$xmlCtn);
          fclose($fp);


          $fp fopen$filename,"w");
          fwrite($fp"<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
          //fwrite($fp, "<movies>");
          fwrite($fp"\n".$newXmlCtn);
          fwrite($fp$addTxt);
          fwrite($fp"\n</movies>");
          fclose($fp);
              
          $ausgabe "gespeichert!";
          echo 
          $ausgabe;    
              exit; }



          ?>

          Gruß
          Der Schneemann

          Kommentar


          • #6
            Original geschrieben von schneemann
            Nun habe ich das Problem, dass wenn man auf speichern klickt, soll das Bild hochgeladen und die Formulardaten abgespeichert werden.
            Welches Problem hast du denn jetzt noch?

            Zum Sichern des Bildes musst du dir einen Dateinamen ausdenken (oder irgendwo her nehmen).

            Also kannst du den doch jetzt zu dem Zeitpunkt, wo du Name und sonstiges einträgst, auch noch mit eintragen.
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar

            Lädt...
            X