Variable mit Knoten im Hirn

cris-the-best

Erfahrenes Mitglied
Hi,

ich lade eine Datei über den Browser in einen Ordner
klappt super doch möchte ich das für 10 weitere Dateien auch machen.
Habe jetzt den unten liegenden Quell Code immer kopiert und von Hand immer
die Variable "upbild10" geändert.

wie kann ich das machen das ich das als eine Vorlage habe?
Weiss auch nicht recht wonach ich suchen muss.

Code:
 /*START upbild10 */
if ((($_FILES["upbild10"]["type"] == "image/gif")
|| ($_FILES["upbild10"]["type"] == "image/jpeg")
|| ($_FILES["upbild10"]["type"] == "image/png")
|| ($_FILES["upbild10"]["type"] == "image/x-png")
|| ($_FILES["upbild10"]["type"] == "image/pjpeg"))
&& ($_FILES["upbild10"]["size"] < 100000000))
  {

  if ($_FILES["upbild10"]["error"] > 0)
    {
    $upbild10error ("<p class=\"subtext\">Mit der Datei Stimm Was nicht: ".$_FILES['upbild10']['error']."</p><br /> ");
    }
  else
    {

	
	/*wenn datei schon vorhanden dann, ansonsten: */
    if (file_exists("../upload/" . $_FILES["upbild10"]["name"]))
      {   move_uploaded_file($_FILES["upbild10"]["tmp_name"],
      "../upload/" . $_FILES["upbild10"]["name"]);
        $upbild10vorhanden = ("<p class=\"error\">ACHTUNG: ".$_FILES['upbild10']['name']." DAS BILD WURDE ÜBERSCHRIEBEN</p><br />");
		$neu_bild_010_show = ("<img src=\"pics/ok.png\"  /><br><img src=\"../upload/".$_FILES['upbild10']['name']."\" width=\"120\"  alt=\"\" /><br />");
      }
    else
      {
      move_uploaded_file($_FILES["upbild10"]["tmp_name"],
      "../upload/" . $_FILES["upbild10"]["name"]);
     
  $neu_bild_010 = ("".$_FILES['upbild10']['name']."");
  $neu_bild_010_show = ("<img src=\"pics/ok.png\"  /><br><img src=\"../upload/".$_FILES['upbild10']['name']."\" width=\"120\"  alt=\"\" /><br />");
	
      }
    }
  }
else
  {
  $upbild10no = ("<strong>KEINE BILD HOCHGELADEN</strong><br />");
  }
 /*STOP upbild10 */
 
Wenn das mal nicht ein Coller Thread Titel ist^^

du packst das ganze einfach in eine Funktion, die ein Parameter entgegen nimmt, und zwar eine Zahl. mit dieser Zahl Generirst du dann den "FileName" String.
PHP:
 /*START upbildx */
function savepic($bildnummer)
{
 $filename = "upbild$bildnummer";
 if ((($_FILES[$filename]["type"] == "image/gif")
 || ($_FILES[$filename]["type"] == "image/jpeg")
 ....
}
savepic(1); //Dies könnte man dann auch in einer Schleife realisieren.
savepic(2);
 /*STOP upbildx */


ich hoffe ich hab dich verstanden.
mfg
Gene
 
Ok soweit verstanden..
somit halte ich mir das variable aber ich brauche das alle in einer abfolge
ich lade quasi 10 Bilder gleichzeitig rein...

Code:
  /*START upbild1 */ 
function savepic($bildnummer) 
{ 
 $filename = "upbild$bildnummer"; 
 if ((($_FILES[$filename]["type"] == "image/gif") 
 || ($_FILES[$filename]["type"] == "image/jpeg") 
 .... 
} 
savepic(1); //Dies könnte man dann auch in einer Schleife realisieren. 
savepic(2); 
 /*STOP upbild1 */

  /*START upbild2 */ 
function savepic($bildnummer) 
{ 
 $filename = "upbild$bildnummer"; 
 if ((($_FILES[$filename]["type"] == "image/gif") 
 || ($_FILES[$filename]["type"] == "image/jpeg") 
 .... 
} 
savepic(1); //Dies könnte man dann auch in einer Schleife realisieren. 
savepic(2); 
 /*STOP upbild2 */ 

usw..

ich schicke über ein Formular 10 Dateien weiter.
Ich weiss es ist nicht viel währe ja rückzuck Kopiert wenn es da nicht Kunden gabe.
Die dann die ausgabe ein wenig anders haben wollen :(

Danke schon mal für die nächtliche Hilfe.
 
Ich verstehe dein Problem nicht, kannst du es anders erklären, oder du wartest bis jemand kommt, der deine Frage verstanden hat.
 
Vom Aufbau her könnte das so aussehen. Das wird zu 99% nicht funktionieren, du musst das schon noch für dich zurechtbauen. So siehst du aber wie es funktionieren könnte:
PHP:
function savepic( $bildnummer )
{
    $file = 'upbild' .$bildnummer;
 
    if( $_FILES[$file]['error'] > 0 )
    {
        $error ("<p class=\"subtext\">Mit der Datei Stimm Was nicht: ".$_FILES[$file]["error"]."</p><br /> ");
    }
    else
    {	
    /*wenn datei schon vorhanden dann, ansonsten: */
        if (file_exists("../upload/" . $_FILES[$file]["name"]))
        {
            move_uploaded_file($_FILES[$file]["tmp_name"], "../upload/" . $_FILES[$file]["name"]);
            $vorhanden = ("<p class=\"error\">ACHTUNG: ".$_FILES[$file]['name']." DAS BILD WURDE ÜBERSCHRIEBEN</p><br />");
            $show = ("<img src=\"pics/ok.png\"  /><br><img src=\"../upload/".$_FILES[$file]['name']."\" width=\"120\"  alt=\"\" /><br />");
        }
        else
        {
            move_uploaded_file($_FILES[$file]["tmp_name"], "../upload/" . $_FILES[$file]["name"]);
            $neu = ("".$_FILES[$file]['name']."");
            $neu_show = ("<img src=\"pics/ok.png\"  /><br><img src=\"../upload/".$_FILES[$file]['name']."\" width=\"120\"  alt=\"\" /><br />");
        }
    }

}

// Aufruf
$anzahl = 10;
for( $i = 0; $i < $anzahl; $i++ )
{
    savepic( $anzahl );
}
 
Die Daten über Referenz übergeben und weiter bearbeiten wäre in diesem Fall sinnvoller
 
Er meint mit Referenz die Durchnummerierung der names im Input-Tag :rolleyes:
PHP:
for($i=1;$i<10;$i++) {
       echo '<input type="file" name="datei$i">';
}
So kannst du ganz leicht, im Teil wo du die Übergabe bearbeitest, die Werte/Daten weiter verarbeiten (z.B. speichern)
PHP:
if(ISSET($_POST)) { //man sollte natürlich angeben nach welchem $_POST man prüft!
      $e=1;
       while($e=10) {
             move_uploaded_file(htmlentities($_FILES["datei".$e]['tmp_name']), "./");
             $e++;
       }
}
Bei manchen Input-Tags kann man auch einfach name="wert[]" schreiben, so dass automatisch Referenzen gesetzt werden. Ich weiß jedoch nicht, ob dies auch beim File-Input-Tag funktioniert, da die Übergabewerte damit als Array übergeben werden.
(ich kenne diese Variante nur bei Checkbox(en))
 
Zuletzt bearbeitet:
Zurück