copy fehlermeldung beim bilderupload

zorromaus

Mitglied
also ich habe folgendes kleines problem ich versuche mit folgenden script ein bilderupload. dabei wird der pfad zum bild in eine datenbank geschrieben, und das bild umbenannt. jetzt bekomme ich folgende fehlermeldung:
Warning copy: (../pfad/bild_01.jpg) failed to open stream Permission denied in /absolutpfad zum server/modules/einfuegen_inc.php on line 40.

zeile 40 in meinen script ist der copy befehl (siehe code)
PHP:
// --- Bilder uploaden ---
$bild1 = $_FILES['bild1']['name'];
unset($b1);

if(strlen($bild1)!=0)
 {$name = $_FILES['bild1']['name'];
  $temp  = explode(".",$name);
  $dname = $onr."_1.".$temp[1];
  $b1 = $server.$img1.$dname;
  
  if(!empty($name))
   {if(copy($_FILES['bild1']['tmp_name'],"..".$img1.$dname))
     {if(move_uploaded_file($name,$dname))
       {echo "Datei $b1 konnte <b>nicht</b> hochgeladen werden!<br>";}
     }
   }
 }

könnt ihr mir jetzt irgendwie helfen?

Danke gruß Z
 
dein formular ?

Poste mal dein Formular ...

Kann sein, dass du im <form> -Tag was vergessen hast, und zwar:

enctype="multipart/form-data"

Oder die Schreibrechte sind falsch gesetzt, sollte alles nix helfen poste mal den ganzen Code ;)
 
da das Zielverzeichnis Dir gehört, PHP aber wahrscheinlich als nobody/nogroup läuft, sollte das Zielverzeichnis CHMOD 757 (rwxr-xrwx) besitzen. Dadurch können aber Benutzer, die nicht zu Deiner Gruppe gehören auch Dateien in den Ordner speichern.

snuu
 
öhm

also chmod ist richtig gesetzt und enctype im form-tag ist auch richtig.


Code:
<form action="objekte.php" enctype="multipart/form-data" method="POST">
<input type="file" name="bild1" accept="img/*" class="klick">
</form>

also da kann ich auch nix falsches erkennen...?

und nun? :(

Z
 
Original geschrieben von zorromaus
könnt ihr mir jetzt irgendwie helfen?
Hm, mal ne Frage: Warum verwendest Du die Funktion copy() UND die Funktion move_uploaded_file() ? Eine davon, aus Sicherheitsgründen am besten move_uploaded_file, sollte ausreichen. Wohlmöglich dass dann auch die Fehlermeldung verschwindet:

PHP:
if(@move_uploaded_file($_FILES['bild1'],$www_path)) {
     echo "Upload erfolgreich";
} else {
     echo "Die Datei konnte nicht hochgeladen werden";
}
 
@Chino:
ich meine mich dunkel daran zu erinnern irgendwo mal, in einen meiner php bücher, oder in einen forum, gelesen zu haben das beides zusammen (copy und move_uploaded_file) sinn macht.

@all:
ich habe den fehler jetzt doch gefunden

:eek:

ich muß natürlich nicht nur den ordner freigeben in dem die bilder reingeladen werden sondern auch den darüber liegenden ordner. sorry hätte ich ja auch selber drauf kommen können. trotzdem danke nochmal an alle

gruß Z
 
Zuletzt bearbeitet:
Original geschrieben von zorromaus
@Chino:
ich meine mich dunkel daran zu erinnern irgendwo mal, in einen meiner php bücher, oder in einen forum, gelesen zu haben das beides zusammen (copy und move_uploaded_file) sinn macht.
Dann erkläre mir doch bitte mal den Sinn dahinter, zwei Funktionen, die genau das gleiche Ergebnis haben, anzuwenden.
 
guggst du hier da habe ich das so gefunden.

selfphp funktionsreferenz
sorry ich vermute mal wenn ich das richtig verstehe dann ist durch die anwendung beider funktionen absolut sicher gewährleistet das sie auch ausgeführt werden. keine ahnung ob das stimmt aber wenn es dort steht ist es sicher auch nicht verkehrt. zumindest funktioniert es ja.


have a nice weekend

Z
 
Zurück