Problem beim Bild hochladen

naty
Hallo zusammen!

ich brauch mal wieder eure Hilfe. Ich habe ein folgendes Problem. Ich muss Bilddateien in Ordner "bilder" hochladen. Das klappt, aber wenn eine Datei mit gleichem Name in dem Ordner vorhanden ist, dann wird sie einfach übeschrieben. Ich möchte aber erstmal überprüfung durch führen, ob glaichnamige Datei existiert und wenn ja die Datei nicht hochladen, sonden entsprechende Meldung ausgeben....

Hier ist noch mal Quelcode...

php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
<?php
  
//Fehler prüfen: format, nur bilder ermöglichen

      $userfile_backup=$userfile_name;
      $endung=explode(".",$userfile_backup);
      
 if (($endung[1]=="gif") or ($endung[1]=="jpg") or ($endung[1]=="jpeg") or ($endung[1]=="JPG")){
         //ausgabe
         if (!copy($userfile,"bilder/".$userfile_name)){
           echo"<br>Fehler! Die Datei konnte nicht auf den Server kopiert werden. M&ouml;gliccherweise
            &uuml;bersteigert die Gr&ouml;&szlig;e der Datei die angegebene Maximalgr&ouml;&szlig;e,
            oder schon vorhanden";
            echo"<br><a href='bildhochladen.php?id=$id&Name=$Name&uid=$uid&UName=$UName&Pid=$Pid&Bild=$Bild'>Zur&uumlck</a>";
            $fehler=1;
         }else{



            echo"Die Datei wurde auf den Server kopiert.<br>";
            if (isset ($UName)){
               echo"<a href='produkt.php'>Zur&uumlck zu den Produkten</a>";
            }  else{
               echo"<a href='produkt.php'>Zur&uumlck zu den Produkten</a>";
            }
         }
    }else{
    echo"Es ist nun erlaubt Dateien mit den Endungen 'gif', 'jpg', 'jpeg', 'JPG' auf den Server zu laden.<br>";
    echo"<br><a href='bildhochladen.php'>Zur&uumlck</a>";
    $fehler=1;

}

?>
daHooligan
probiers mal mit
php:
1:
2:
<?php If(file_exist("dateiname.txt")) {
echo("Datei existiert..."); ?>


Der Teil
php:
1:
<?php if (!copy($userfile,"bilder/".$userfile_name)) ?>


meldet sich ja nur wenn auf irgendeine weise das kopieren net ging (Verbindung unterbrochen, HDD voll, timeout etc.)
naty
Danke, daHooligan, das hat super geklappt.

Habe direkt, aber neue Frage, wenn ich Funktion update benutze, so etwa:

$sql = "update Produkt set Bildkl=' ' where id=$Pid";
$ergebnis = mysql_query($sql);

wird das Feld in der Datenbank geleert. Ich möchte aber, dass die Datei mit dem Name (in dem Fall Bildkl) auch aus dem Verzeichniss "bilder" gelöscht wird.
Habe gedacht so wird es funktionieren:

unlink(bilder.$Bildkl)

aber das klappt nicht. Irgendwie fehlt mir wieder die Logik, oder einfach die Kenntnisse unglücklich ...

Hast Du eine Idee?
daHooligan
als "unlink" stimmt wohl, denke mal, dass einfach die Pfadangabe net stimmt.

am besten, du machst zum debuggen mal ne ausgabe davor in der die Zieldate angegeben wird.
also:
php:
1:
2:
3:
<?php $bildadresse="bilder/".$bildkl;
echo $bildadresse;
//unlink($bildadresse); ?>

(unlink ist auskommentiert weils ja nur debug-modus ist, wenn die Pfadangabe sitmmt einfach kommentierung umkehren)
statt dem "unlink(bilder.$Bildkl)".
Ich weiß jetzt nicht, wie man den Pfad angeben muss um eine Datei zu löschen, denke aber mal, das eine relative Pfadangaben geht.
wenn der "bilder"-ordner im gleichen Verzeichnis liegt wie das Script (annahme: script liege im "/", dann liegen die Bilder selbst (also die jpegs) in " /Bilder/". Ich hoffe mal, ich hab mich verständlich ausgedrückt, wenn nicht: melden.
naty
Das hat tatsächlich geklappt!
Hat bei mir aber länger gedauert, weil ich blöderweise erstmal den Name des Bildes aus der DB gelöscht habe und dann versucht dies auszulesen und das Bild mit dem Name aus dem Verzeichniss zu löschen. Das hat natürlich nicht funktioniert bis ich nicht die sql-Befehle getauscht habe Mauer ...

Jetzt läuft alles super. Un unlink funktioniert. Danke schön smile

Übrigens bei PHP wird Pfad mi einfachen Ausführungszeichen gemacht:

$bildadresse='bilder/'.$bildkl;

habe deswegen auch länger gebraucht smile

Vielen Dank noch mal.