tomarild.h Skrevet 3. desember 2012 Del Skrevet 3. desember 2012 Hei! Jeg lurer på om det finnes noen enkel måte å skifte navn på en fil som blir lastet opp med nedenstående script. Scriptet fungerer glimrende slik som det er, men skulle altså ha skiftet navn til noe som blir hentet fra en database, eller kanskje aller helst med f.eks $_GET['id'] eller noe. <?php $allowedExts = array("jpg", "jpeg", "gif", "png"); $extension = end(explode(".", $_FILES["file"]["name"])); if ((($_FILES["file"]["type"] == "image/gif") || ($_FILES["file"]["type"] == "image/jpeg") || ($_FILES["file"]["type"] == "image/png") || ($_FILES["file"]["type"] == "image/pjpeg")) && ($_FILES["file"]["size"] < 80000) && in_array($extension, $allowedExts)) { if ($_FILES["file"]["error"] > 0) { echo "Return Code: " . $_FILES["file"]["error"] . "<br>"; } else { echo "Lastet opp: " . $_FILES["file"]["name"] . "<br>"; echo "Type: " . $_FILES["file"]["type"] . "<br>"; echo "Størrelse: " . ($_FILES["file"]["size"] / 1024) . " kB<br>"; echo "Midlertidig fil: " . $_FILES["file"]["tmp_name"] . "<br>"; if (file_exists("upload/" . $_FILES["file"]["name"])) { echo $_FILES["file"]["name"] . " finnes allerede. "; } else { move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $_FILES["file"]["name"]); echo "Lagret i: " . "upload/" . $_FILES["file"]["name"]; } } } else { echo "Ugyldig fil"; } ?> Lenke til kommentar
Feh Skrevet 4. desember 2012 Del Skrevet 4. desember 2012 (endret) Hvis du vil f.eks legge til IDen, men beholde navnet kan du gjøre følgende: else { $id = $_GET['id']; move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $id . $_FILES["file"]["name"]); echo "Lagret i: " . "upload/" . $_FILES["file"]["name"]; } Skal du bytte ut hele filnavnet kjører du bare rename() etter du har flyttet filen: .. move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $id . $_FILES["file"]["name"]); $filename=$id . $_FILES["file"]["name"]; $new_filename=$id.'nyttfilnavn'; rename($filename, $new_filename) or die('Error renaming file.'); Endret 4. desember 2012 av Feh Lenke til kommentar
tomarild.h Skrevet 4. desember 2012 Forfatter Del Skrevet 4. desember 2012 Hei Feh! Takk for at du hjelper! Forsøker å sette inn rename-delen du skrev, men jeg får bare opp feilmeldingen. Noen idé om hva det kan være? Driver og forsker litt selv, men finner ikke helt ut av det. Lenke til kommentar
PureDarkness Skrevet 4. desember 2012 Del Skrevet 4. desember 2012 Hei Feh! Takk for at du hjelper! Forsøker å sette inn rename-delen du skrev, men jeg får bare opp feilmeldingen. Noen idé om hva det kan være? Driver og forsker litt selv, men finner ikke helt ut av det. Hei, definerer du variablen $id i din nåværende kode? Kan du evt legge ut din nåværende kodesnutt? Lenke til kommentar
tomarild.h Skrevet 4. desember 2012 Forfatter Del Skrevet 4. desember 2012 Hei PureDarkness! Jeg tror da det Her er koden. Har forsøkt med veldig mye forskjellig, men dette er siste forsøk. <?php $allowedExts = array("jpg", "jpeg", "gif", "png"); $extension = end(explode(".", $_FILES["file"]["name"])); if ((($_FILES["file"]["type"] == "image/gif") || ($_FILES["file"]["type"] == "image/jpeg") || ($_FILES["file"]["type"] == "image/png") || ($_FILES["file"]["type"] == "image/pjpeg")) && ($_FILES["file"]["size"] < 80000) && in_array($extension, $allowedExts)) { if ($_FILES["file"]["error"] > 0) { echo "Return Code: " . $_FILES["file"]["error"] . "<br>"; } else { echo "Lastet opp: " . $_FILES["file"]["name"] . "<br>"; echo "Type: " . $_FILES["file"]["type"] . "<br>"; echo "Størrelse: " . ($_FILES["file"]["size"] / 1024) . " kB<br>"; echo "Midlertidig fil: " . $_FILES["file"]["tmp_name"] . "<br>"; if (file_exists("upload/" . $_FILES["file"]["name"])) { echo $_FILES["file"]["name"] . " finnes allerede. "; } else { $id = $_GET['id']; move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $id . $_FILES["file"]["name"]); $filename=$id . $_FILES["file"]["name"]; $new_filename=$id. 'filnavn'; rename($filename, $new_filename) or die('Error renaming file.'); } } } else { echo "Ugyldig fil"; } ?> Lenke til kommentar
slacky Skrevet 4. desember 2012 Del Skrevet 4. desember 2012 (endret) move_uploaded_file() har muligheten til å rename filen, trenger ikke bruke egen funksjon for det.. Jeg ønsker å markere at i din kode skjekker du TO ganger om filen er gyldig format. Du sier du får opp feilmelding, men gi den da til oss? I hver feilmedling så står feilen klart og tydelig... Følgende kode fungerer, uten feil. <?php $id = $_GET['id']; function goodfile($ext, $size){ $allowed_ext = array('gif', 'jpg', 'png', 'jpeg'); if(in_array($ext, $allowed_ext) and $size<80000) return true; else return false; } if (isset($_POST['submit'])) { $ext = pathinfo($_FILES['image']['name'], PATHINFO_EXTENSION); $size = $_FILES['image']['size']; $new_filename=$id.'_your_filename_here_.'.$ext; if(goodfile($ext, $size)==false) die("Ugyldig fil, $ext, $size"); if($_FILES["image"]["error"] > 0) die("Error: " . $_FILES["image"]["error"] . "<br />"); if(file_exists("upload/{$new_filename}")) die($_FILES['file']['name'] . " finnes allerede. "); echo "Lastet opp: " . $_FILES['image']['name'] . "<br>"; echo "Type: " . $_FILES["image"]['type'] . "<br>"; echo "Størrelse: " . ($_FILES['image']['size'] / 1024) . " kB<br>"; echo "Midlertidig fil: " . $_FILES['image']['tmp_name'] . "<br>"; move_uploaded_file($_FILES['image']['tmp_name'], "upload/$new_filename"); } else { ?> <form action='?id=10' method='post' enctype='multipart/form-data' name='form1'> <input class='textbox' name='image' type='file' id='vid_file' /> <input type='submit' class='button' name='submit' value='last opp' /> </form> <?php } ?> Denne koden fungerer, og jeg har testet som du ser, du må bare endre VELDIG enkle saker for å tilpasse den nå. Endret 5. desember 2012 av warpie Lenke til kommentar
tomarild.h Skrevet 4. desember 2012 Forfatter Del Skrevet 4. desember 2012 Hei Warpie! Feilmeldingen jeg fikk opp var bare den som ligger i scriptet "Ugyldig fil" :-) Jeg har akkurat funnet ut av det, takket være dere alle sammen. Takk for hjelp! :-) Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå