Upload / Trotz leerem Feld Bestätigung

Deine Version war leider falsch. Probier es mal so:
PHP:
<?php 
if ( is_array($_FILES['file']) ) {
$tempname = $_FILES['file']['tmp_name']; 
$ext = $type == 'image/gif' ? '.gif' : '.jpg'; 
$name = 'File00001'.$ext; 
$num = 1; 
while(file_exists($name)) { 
  $num++; 
  $name = 'File'.str_repeat('0', 5-strlen((string)$num)).$num.$ext; 
}
$type = $_FILES['file']['type']; 
$size = $_FILES['file']['size']; 
if(empty($err)) { 
    copy("$tempname", "$name"); 
echo "Die Datei $name wurde erfolgreich hochgeladen!<br> 
          Die Adresse zu deinem Foto ist folgende:   <a target='_blank' href='http://www.chvt.de/images/$name'>www.chvt.de/images/$name</a><br><br>"; 
} 
else { 
    foreach($err as $error) 
    echo "$error<br>"; 
}
} 

if ( is_array($_FILES['file1']) ) {
$tempname = $_FILES['file1']['tmp_name']; 
$ext = $type == 'image/gif' ? '.gif' : '.jpg'; 
$name = 'File00001'.$ext; 
$num = 1; 
while(file_exists($name)) { 
  $num++; 
  $name = 'File'.str_repeat('0', 5-strlen((string)$num)).$num.$ext; 
}
$type = $_FILES['file1']['type']; 
$size = $_FILES['file1']['size']; 
if(empty($err)) { 
    copy("$tempname", "$name"); 
echo "Die Datei $name wurde erfolgreich hochgeladen!<br> 
          Die Adresse zu deinem Foto ist folgende:   <a target='_blank' href='http://www.chvt.de/images/$name'>www.chvt.de/images/$name</a><br><br>"; 
} 
else { 
    foreach($err as $error) 
    echo "$error<br>"; 
}
} 

if ( is_array($_FILES['file2']) ) {
$tempname = $_FILES['file2']['tmp_name']; 
$ext = $type == 'image/gif' ? '.gif' : '.jpg'; 
$name = 'File00001'.$ext; 
$num = 1; 
while(file_exists($name)) { 
  $num++; 
  $name = 'File'.str_repeat('0', 5-strlen((string)$num)).$num.$ext; 
}
$type = $_FILES['file2']['type']; 
$size = $_FILES['file2']['size']; 
if(empty($err)) { 
    copy("$tempname", "$name"); 
echo "Die Datei $name wurde erfolgreich hochgeladen!<br> 
          Die Adresse zu deinem Foto ist folgende:   <a target='_blank' href='http://www.chvt.de/images/$name'>www.chvt.de/images/$name</a><br><br>"; 
} 
else { 
    foreach($err as $error) 
    echo "$error<br>"; 
}
} 

if ( is_array($_FILES['file3']) ) {
$tempname = $_FILES['file3']['tmp_name']; 
$ext = $type == 'image/gif' ? '.gif' : '.jpg'; 
$name = 'File00001'.$ext; 
$num = 1; 
while(file_exists($name)) { 
  $num++; 
  $name = 'File'.str_repeat('0', 5-strlen((string)$num)).$num.$ext; 
}
$type = $_FILES['file3']['type']; 
$size = $_FILES['file3']['size']; 
if(empty($err)) { 
    copy("$tempname", "$name"); 
echo "Die Datei $name wurde erfolgreich hochgeladen!<br> 
          Die Adresse zu deinem Foto ist folgende:   <a target='_blank' href='http://www.chvt.de/images/$name'>www.chvt.de/images/$name</a><br><br>"; 
} 
else { 
    foreach($err as $error) 
    echo "$error<br>"; 
}
}

if ( is_array($_FILES['file4']) ) {
$tempname = $_FILES['file4']['tmp_name']; 
$ext = $type == 'image/gif' ? '.gif' : '.jpg'; 
$name = 'File00001'.$ext; 
$num = 1; 
while(file_exists($name)) { 
  $num++; 
  $name = 'File'.str_repeat('0', 5-strlen((string)$num)).$num.$ext; 
}
$type = $_FILES['file4']['type']; 
$size = $_FILES['file4']['size']; 
if(empty($err)) { 
    copy("$tempname", "$name"); 
echo "Die Datei $name wurde erfolgreich hochgeladen!<br> 
          Die Adresse zu deinem Foto ist folgende:   <a target='_blank' href='http://www.chvt.de/images/$name'>www.chvt.de/images/$name</a><br><br>"; 
} 
else { 
    foreach($err as $error) 
    echo "$error<br>"; 
}
}  
?>

Oder probier es so
PHP:
<?php 
$list = array("",1,2,3,4);

for ( $i = 0; $i < count($list); $i++ )  {
  if ( is_array($_FILES['file$i']) ) {
    $tempname = $_FILES['file$i']['tmp_name']; 
    $ext = $type == 'image/gif' ? '.gif' : '.jpg'; 
    $name = 'File00001'.$ext; 
    $num = 1; 
    while(file_exists($name)) { 
      $num++; 
      $name = 'File'.str_repeat('0', 5-strlen((string)$num)).$num.$ext; 
    }
    $type = $_FILES['file$i']['type']; 
    $size = $_FILES['file$i']['size']; 
    if(empty($err)) { 
      copy("$tempname", "$name"); 
      echo "Die Datei $name wurde erfolgreich hochgeladen!<br> 
          Die Adresse zu deinem Foto ist folgende:   <a target='_blank' href='http://www.chvt.de/images/$name'>www.chvt.de/images/$name</a><br><br>"; 
    } 
    else { 
      foreach($err as $error) 
        echo "$error<br>"; 
    }
  }
}
?>
 
Zuletzt bearbeitet:
Hallo Tobee,

danke, dass du Geduld mit mir hast und mir weierhin hilft.

Ich habe den Code, den du geschrieben hast so übernommen.
Diesmal lädt er auch beide Dateien hoch, aber ich bekomme wieder dieses Echo:

Code:
Die Datei File00001.jpg wurde erfolgreich hochgeladen!
Die Adresse zu deinem Foto ist folgende: www.chvt.de/images/File00001.jpg

Die Datei File00002.jpg wurde erfolgreich hochgeladen!
Die Adresse zu deinem Foto ist folgende: www.chvt.de/images/File00002.jpg

Die Datei File00003.jpg wurde erfolgreich hochgeladen!
Die Adresse zu deinem Foto ist folgende: www.chvt.de/images/File00003.jpg

Die Datei File00003.jpg wurde erfolgreich hochgeladen!
Die Adresse zu deinem Foto ist folgende: www.chvt.de/images/File00003.jpg

Die Datei File00003.jpg wurde erfolgreich hochgeladen!
Die Adresse zu deinem Foto ist folgende: www.chvt.de/images/File00003.jpg

Also er erfindet wieder die Datei "File00003.jpg" (die gibt es nicht auf dem Server und es wurden beim Formular nur zwei Dateien ausgewählt) und gibt auch bei den Feldern, in die keine Datei eingetragen war, ein Echo. :confused:
 
Und so?
PHP:
<?php 
$list = array("",1,2,3,4);

for ( $i = 0; $i < count($list); $i++ )  {
  if ( is_array($_FILES['file{$list[$i]}']) ) {
    $tempname = $_FILES['file{$list[$i]}']['tmp_name']; 
    $ext = $type == 'image/gif' ? '.gif' : '.jpg'; 
    $name = 'File00001'.$ext; 
    $num = 1; 
    while(file_exists($name)) { 
      $num++; 
      $name = 'File'.str_repeat('0', 5-strlen((string)$num)).$num.$ext; 
    }
    $type = $_FILES['file{$list[$i]}']['type']; 
    $size = $_FILES['file{$list[$i]}']['size']; 
    if(empty($err)) { 
      copy("$tempname", "$name"); 
      echo "Die Datei $name wurde erfolgreich hochgeladen!<br> 
          Die Adresse zu deinem Foto ist folgende:   <a target='_blank' href='http://www.chvt.de/images/$name'>www.chvt.de/images/$name</a><br><br>"; 
    } 
    else { 
      foreach($err as $error) 
        echo "$error<br>"; 
    }
  }
}
?>
 
Jupp in der Tat war nen fehler drin o.O ich dachte fest das sie anderst in FILES anderst ankommen... naja dann hier eben richtig *duck*

Nur zu berichtigung meines Postes xD

PHP:
<?
if($_FILES){
    for($i=1;$i<6;$i++){
        if($_FILES['file']['tmp_name'][$i] == '') continue 1;
        $tempname       = $_FILES['file']['tmp_name'][$i];
        $type           = $_FILES['file']['type'][$i];
        $size           = $_FILES['file']['size'][$i];

        $ext            = $type == 'image/gif' ? '.gif' : '.jpg';
        $num            = 1;
        $name           = 'File00001'.$ext;
        while(file_exists($name)) {
          $num++;
          $name = 'File'.str_repeat('0', 5-strlen((string)$num)).$num.$ext;
        }
        if(move_uploaded_file($tempname, $name)){
            echo "Die Datei $name wurde erfolgreich hochgeladen!<br>
                  Die Adresse zu deinem Foto ist folgende:   <a target='_blank' href='http://www.chvt.de/images/$name'>www.chvt.de/images/$name</a><br><br>";
        } else {
            echo "Datei konnte nicht hochgeladen werden<br>";
        }
    }
}
?>
<form method="POST" enctype="multipart/form-data">
<input type="file" name="file[1]">
<input type="file" name="file[2]">
<input type="file" name="file[3]">
<input type="file" name="file[4]">
<input type="file" name="file[5]">
<input type="submit">
</form>

Und du solltest vielleicht besser in einer txt datei die aktuellen max-zahlen der jpg und gif dateien abspeichern... wenn das mal ein paar hundert sind, wird es ziemlich langsam werden wenn er jedes mal prüfen muss ob alle da sind
 
Zuletzt bearbeitet:
Mit der zweiten Version, die du eben noch dran gehängt hast, bekomme ich gar kein Echo und es wird auch keine Datei hochgeladen.
 
Und so?
PHP:
<?php 
$list = array("",1,2,3,4);

for ( $i = 0; $i < count($list); $i++ )  {
  if ( is_array($_FILES['file{$list[$i]}']) ) {
    $tempname = $_FILES['file{$list[$i]}']['tmp_name']; 
    $ext = $type == 'image/gif' ? '.gif' : '.jpg'; 
    $name = 'File00001'.$ext; 
    $num = 1; 
    while(file_exists($name)) { 
      $num++; 
      $name = 'File'.str_repeat('0', 5-strlen((string)$num)).$num.$ext; 
    }
    $type = $_FILES['file{$list[$i]}']['type']; 
    $size = $_FILES['file{$list[$i]}']['size']; 
    if(empty($err)) { 
      copy("$tempname", "$name"); 
      echo "Die Datei $name wurde erfolgreich hochgeladen!<br> 
          Die Adresse zu deinem Foto ist folgende:   <a target='_blank' href='http://www.chvt.de/images/$name'>www.chvt.de/images/$name</a><br><br>"; 
    } 
    else { 
      foreach($err as $error) 
        echo "$error<br>"; 
    }
  }
}
?>



Dann kommt diese Fehlermeldung:
Code:
Parse error: syntax error, unexpected T_STRING, expecting ']' in /kunden/87757/htdocs/chvt.de/www/fuck/upload.php on line 15
 
Jupp in der Tat war nen fehler drin o.O ich dachte fest das sie anderst in FILES anderst ankommen... naja dann hier eben richtig *duck*

Nur zu berichtigung meines Postes xD


Hallo engelb,

ok so funktioniert es.
Kann man den Code vielleicht noch ändern, so dass das Echo auf einer weißen Seite angezeigt wird, also nicht mit dem Formular sondern auf einer Seite ohne das Formular, wo einfach nur das Echo steht?

Liebe Grüße

Tim
 
Zurück