Hier nochmal ein Problemchen von mir:
Ich habe folgendes Script zum Bild Upload und umbenennen:
PHP-Code:
$file_dir="../userpics/";
if(isset($_POST["submit"])){
$a_patter = array("|^image/gif$|","|^image/pjpeg$|","|^image/x-png$|","|^image/bmp$|");
for($a=0;$a<count($a_patter);$a++){
if(preg_match($a_patter[$a],$_FILES["usrfile"]["type"])){
if($_FILES["usrfile"]["size"] > 0){
$ext = strrchr($_FILES["usrfile"]["name"],'.');
$bilddatei_neu = "$session_user$ext";
rename($_FILES["usrfile"]["tmp_name"], $file_dir.$bilddatei_neu);
echo "Image vollständig hochgeladen.<br />";
$ok = 1;
$bild_url = "$adresse/member/userpics/$bilddatei_neu";
mysql_query("UPDATE user_daten SET bild='$bild_url' WHERE user='$session_user'");
}else{
echo "Datei hat keinen inhalt...";
}
}
}
if(!isset($ok)){
echo "falscher dateityp";
}
}
?>
<form action="np_bild.php" method="post" enctype="multipart/form-data">
<input type="submit" name="submit" value="Bild hochladen">
<input type="file" name="usrfile">
</form>
Das Script macht eigentlich alles richtig, es lädt die Bilder hoch ins "userpics" Verzeichnis und es benennt sie um.
Das Problem ist nun, das das Bild nicht angezeigt wird. Mit dem SQL-Befehl wird die URL des Bildes gespeichert, soweit gut.
Die Datei soll immer unterschiedliche Namen haben, immer den "Usernamen.Endung". Bei mir heisst sie "admin.jpg". Wenn ich nun die Datei hochlade, wird sie auch in "admin.jpg" umbenannt, egal wie sie vorher hieß.
Sie wird aber eben nicht angezeigt. Wenn ich nun eine Datei mit dem selben Namen via FTP-Programm hochlade wird diese angezeigt.
Hat jemand eine Ahnung wo der Fehler steckt? Das Verzeichnis hat alle nötigen Rechte(CHMOD).