Hans: Skript lädt nur die 3. von 3 Grafiken hoch

Hallo,

Ich bastel gerade an einem kleinen Uploadskript, welches drei Grafiken hochlädt. Die Grafikdateinamen sind inder Variablen $HTTP_POST_VARS['bild1(2,3)'] gespeichert.
Hier einmal der Code:

$quelldatei[0]=$HTTP_POST_VARS['bild1'];
$quelldatei[1]=$HTTP_POST_VARS['bild2'];
$quelldatei[2]=$HTTP_POST_VARS['bild3'];

// Neuen Ordner erstellen

ftp_mkdir($con,"../objekte/objekt".$objektnr);
ftp_mkdir($con,"../objekte/objekt".$objektnr."/objektbilder");

for($i=1;$i<=3;$i++)
{
  $quelldatei = $quelldatei[$i];

print $zieldatei = "../objekte/objekt".$objektnr."/objektbilder/bild".$i.".jpg";

if (!ftp_put($con, $zieldatei, $quelldatei, FTP_BINARY)) {
      print "Konnte keinen Upload durchführen!";
   } else {
      print "  &gt;&gt; Datei ".$quelldatei." erfolgreich hochgeladen.<br>";
   }
}

Die Ordner werden korrekt erstellt, jedoch gibt er beim Schleifendurchlauf beim Upload der ersten beiden Grafiken die Fehlmereldung aus, die 3. Grafik allerdings wird tadellos hochgeladen.
Weiß jemand Rat?

Danke!
Hans

  1. Holladiewaldfee,

    $quelldatei = $quelldatei[$i];

    Hier überschreibst Du das Array mit einem Eintrag aus dem Array.
    Somit gehen die Informationen bzgl. der anderen Grafiken verloren.

    Ciao,

    Harry

    --
      Bald kommt die Waldfee ... (Projektphase: Planung)
      Bis dahin:
      http://harry.ilo.de/projekte/berge/
    1. Hallo,

      schönen Dank erstmal Jungs, hab besonders Harries Tipp befolgt, doch macht es keinen Unterschied.

      Der Code sieht folglich jetzt so aus:

      for($i=1;$i<=3;$i++)
      {
        $source = $quelldatei[$i];

      print $zieldatei = "../objekte/objekt".$objektnr."/objektbilder/bild".$i.".jpg";

      if (!ftp_put($con, $zieldatei, $source, FTP_BINARY)) {
            print "Konnte keinen Upload durchführen!";
         } else {
            print "  &lt;&lt; Datei ".$source." erfolgreich hochgeladen.<br>";
         }
      }

      oder seh ich den Fehler vor lauter Code nicht ;-)?

      1. Moin!

        Fällt dir was auf?

        $quelldatei[0]=$HTTP_POST_VARS['bild1'];
        $quelldatei[1]=$HTTP_POST_VARS['bild2'];
        $quelldatei[2]=$HTTP_POST_VARS['bild3'];

        for($i=1;$i<=3;$i++)
        ...

        - Sven Rautenberg

        1. Hallo,

          Ich sollte wohl $i=0 setzen, vermute ich mal ;-)
          Oculi vident sed ratio caecus est.

          Danke!!

          1. Moin!

            Ich sollte wohl $i=0 setzen, vermute ich mal ;-)

            Wenn du Wert darauf legst, das erste Element des Arrays anzusprechen: Ja. :)

            Aber wenn du außerdem auch Wert darauf legst, dass nur drei Elemente angesprochen werden (und nicht vier), dann mußt du die Abbruchbedingung ebenfalls noch anpassen.

            - Sven Rautenberg

  2. Hello Hans,

    da gibt es noch ein Beispiel, dass dich vielleicht auch interessieren könnte:
    http://selfhtml.bitworks.de --> Dynamisches Uploadformular

    Harzliche Grüße aus http://www.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau
  3. Moin!

    Die Grafikdateinamen sind inder Variablen $HTTP_POST_VARS['bild1(2,3)'] gespeichert.

    Ich hab Neuigkeiten für dich: Die Variable $HTTP_POST_VARS wird abgeschafft!

    Benutze künftig einfach nur noch $_POST. Das ist seit PHP 4.1.0 möglich und auch angeraten, denn irgendwann wird es $HTTP_POST_VARS nicht mehr geben.

    Dasselbe gilt für $HTTP_GET_VARS, $HTTP_ENV_VARS, $HTTP_SERVER_VARS, $HTTP_COOKIE_VARS, $HTTP_SESSION_VARS und $HTTP_POST_FILES.

    Siehe http://de3.php.net/manual/de/reserved.variables.php.

    - Sven Rautenberg