02. september 2004 - 23:04Der er
9 kommentarer og 1 løsning
upload script erstatter ikke
Heysa!
Jeg har dette upload script, men har jeg en fil som fx hedder bruger.jpg, brugeren uploader så igen et nyt billede, og filen kommer til at hedde det samme. nemlig burger.jpg. For scriptet giver fil navnet efter brugeres navn. Så hvordan får jeg dette script til også at erstatte en fil, hvis den allerede eksistere i mappen?
if(isset($_POST['upload']) && $_POST['upload']) { $maxfilesize = 32000; if (!is_uploaded_file($_FILES['userphoto']['tmp_name'])) { $error = "Du valgte ikke nogen fil der skulle uploades!<br />"; } else { if ($_FILES['userphoto']['size'] > $maxfilesize) { $error = "Dit billede fylder for meget!<br />"; } else { $ext = strrchr($_FILES['userphoto']['name'], "."); if ($ext != ".jpg" AND $ext != ".jpeg" AND $ext != ".JPEG" AND $ext != ".JPG") { $error = "Din fil var ikke af den rigtige type!<br />"; } else { if ($_SESSION['photo'] != "nopic.jpg") {
} $newname = $_SESSION['username'].$ext; move_uploaded_file($_FILES['userphoto']['tmp_name'],"/profile_photos/".$newname); mysql_query("UPDATE du_users SET photo='$newname',photo_acc='2' WHERE username='$Bruger'") or die (mysql_error()); $_SESSION['photo'] = $newname;
} } } if ($error) { print "Dit billede kunne ikke uploades fordi: ".$error."."; } else { print ""; }
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
if(isset($_POST['upload']) && $_POST['upload']) { $maxfilesize = 32000; if (!is_uploaded_file($_FILES['userphoto']['tmp_name'])) { $error = "Du valgte ikke nogen fil der skulle uploades!<br />"; } else { if ($_FILES['userphoto']['size'] > $maxfilesize) { $error = "Dit billede fylder for meget!<br />"; } else { $ext = strrchr($_FILES['userphoto']['name'], "."); if ($ext != ".jpg" AND $ext != ".jpeg" AND $ext != ".JPEG" AND $ext != ".JPG") { $error = "Din fil var ikke af den rigtige type!<br />"; } else { if ($_SESSION['photo'] != "nopic.jpg") { } $newname = $_SESSION['username'].$ext; move_uploaded_file($_FILES['userphoto']['tmp_name'],"/profile_photos/".$newname); // slet fil, hvis den allerede findes if(file_exists("/profile_photos/".$newname) ) unlink("/profile_photos/".$newname); mysql_query("UPDATE du_users SET photo='$newname',photo_acc='2' WHERE username='$Bruger'") or die (mysql_error()); $_SESSION['photo'] = $newname;
} } } if ($error) { print "Dit billede kunne ikke uploades fordi: ".$error."."; } else { print ""; }
Nje, den skal foran move_uploaded file.. ellers flytter du filen og sletter den (nye)..
MEN det virker altså meget mystisk at du bruger stien /profile_photos/ - det har man normalt ikke lov til - og slet ikke på webhoteller.. Er du sikker på at problemet ikke er, at den sti er forkert, og derfor ikke bliver flyttet (og dermed overskrifer den gamle fil) ?
Prøv engang at rette linjen til (punktum foran /profile_photos) move_uploaded_file($_FILES['userphoto']['tmp_name'],"./profile_photos/".$newname);
og så fjerne det kode jeg bad dig om at indsætte..
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.