Upload-Script verändern

Habe mich zu früh gefreut. Mit dem Code wird die bestehende Datei auf dem Server gelöscht, die neue aber nicht hochgeladen.

Ich will einfach nur, das die vorhandene Datei mit der neuen Datei ersetzt wird. Wie muss ich das Script umschreiben?

PHP:
<?php 

   // Zielverzeichnis festlegen 
   $DST="/xxx/"; 

   // Informationen zur Import-Datei ausgeben: 
   echo "<table border=0>"; 
   echo "<tr><td colspan=2 bgcolor=#999999>Angaben zur hochgeladenen Datei</td></tr>"; 
   echo "<tr><td bgcolor=#CCCCCC width=100>Datei</td><td>".$userfile_name."</td></tr>"; 
   echo "<tr><td bgcolor=#CCCCCC>Groesse</td><td>".$userfile_size." Bytes</td></tr>"; 
   echo "<tr><td bgcolor=#CCCCCC>Dateityp</td><td>".$userfile_type."</td></tr>"; 
   
   
   if ($userfile_name!="home.jpg")
   {
   		echo "<b>FEHLER:</b> Bitte das Bild in home.jpg umbenennen!<br><br>";
		exit;
   }

   // pruefen, ob es sich um eine gif- oder jpg-datei handelt 
   if ($userfile_type!="image/gif" && $userfile_type!="image/pjpeg" && $userfile_type!="image/x-png") 
   { 
      echo "<b>FEHLER:</b> Die von Ihnen ausgewaehlte Datei ist kein Bild.<br><br>"; 
      exit; 
   } 
   echo "<tr><td></td><td>"; 
   // bestehende datei darf nicht ueberschrieben werden 
   if (file_exists($DST.$userfile_name)) 
   {  
      unlink($DST.$userfile_name);   
      //echo "Die Datei kann nicht hochgeladen werden, da schon eine Datei mit dem gleichen Namen existiert"; 
   } else  
   { 
      // datei darf hochgeladen werden 
      if (copy($userfile, $DST.$userfile_name)) 
      { 
         echo "Die Datei wurde fehlerfrei hochgeladen."; 
      } else 
      { 
         echo "Die Datei konnte nicht hochgeladen werden."; 
      } 
   } // if datei vorhanden 
    
   echo "</td> 
         </tr></table>";   
   
?>
 
so:
PHP:
<?php 

   // Zielverzeichnis festlegen 
   $DST="/xxx/"; 

   // Informationen zur Import-Datei ausgeben: 
   echo "<table border=0>"; 
   echo "<tr><td colspan=2 bgcolor=#999999>Angaben zur hochgeladenen Datei</td></tr>"; 
   echo "<tr><td bgcolor=#CCCCCC width=100>Datei</td><td>".$userfile_name."</td></tr>"; 
   echo "<tr><td bgcolor=#CCCCCC>Groesse</td><td>".$userfile_size." Bytes</td></tr>"; 
   echo "<tr><td bgcolor=#CCCCCC>Dateityp</td><td>".$userfile_type."</td></tr>"; 
   
   
   if ($userfile_name!="home.jpg")
   {
           echo "<b>FEHLER:</b> Bitte das Bild in home.jpg umbenennen!<br><br>";
        exit;
   }

   // pruefen, ob es sich um eine gif- oder jpg-datei handelt 
   if ($userfile_type!="image/gif" && $userfile_type!="image/pjpeg" && $userfile_type!="image/x-png") 
   { 
      echo "<b>FEHLER:</b> Die von Ihnen ausgewaehlte Datei ist kein Bild.<br><br>"; 
      exit; 
   } 
   echo "<tr><td></td><td>"; 
   // bestehende datei darf muss ueberschrieben werden 
   if (file_exists($DST.$userfile_name)) 
   {  
      unlink($DST.$userfile_name);   
      
   } 
      // datei darf hochgeladen werden 
      if (copy($userfile, $DST.$userfile_name)) 
      { 
         echo "Die Datei wurde fehlerfrei hochgeladen."; 
      } else 
      { 
         echo "Die Datei konnte nicht hochgeladen werden."; 
      }  
    
   echo "</td> 
         </tr></table>";   
   
?>

Nun wird aber immer die datei überschrieben, wenn eine mit diesem Namen vorhanden ist. Solltest dir vielleicht noch ein Sichherheitscheck oder etwas ähnliches überlegen, damit man nicht ausversehen die Datei überschreibt.
 
Hi,

eigentlich sollte die Datei automatisch überschrieben werden. Deshalb war in dem Ursprungsscript vermutlich überhaupt eine Abfrage drin, da dies dort verhindert werden sollte.
Im Übrigen würde ich Dir für File-Uploads move_uploaded_file empfehlen, statt copy.

LG
 
Er ist eine Sie :-)

Ja genau das wollte ich. Habe das Script jetzt ausgetauscht, allerdings passiert jetzt gar nichts mehr. Als Antwort bekomme ich zwar " Datei wurde fehlerfrei hochgeladen", aber überschrieben wird nichts. Selbst wenn ich keine Datei im angegebenen Pfad habe, lädt er nichts hoch.
 
PHP:
$file=$DST.$userfile_name;
if (file_exists($DST.$userfile_name)) 
   {  
      unlink($DST.$userfile_name);   
      
   } 
      // datei darf hochgeladen werden 
      if (copy($userfile, $file)) 
      { 
         echo "Die Datei wurde fehlerfrei hochgeladen."; 
      } else 
      { 
         echo "Die Datei konnte nicht hochgeladen werden."; 
      }

versuchs mal damit
 
Zurück