Jeg har dette uploadscript som er fundet i en anden tråd herinde. Jeg kunne bare godt tænke mig at scriptet kunne generere en thumbnail i mappenavn/thumbs/ - samt at scriptet kunne sørge for at man kun kan bruge a-z, 0-9, - og _ i filnavnet. ------------------------------------------------------------
<?php
/* Funktion der uploader en fil af tilladt filtype (MIME) med en maximal størrelse til et bibliotek */ /* Funktionen skal fodres med $_FILES['navn'] */ /* String upload_fil(Array fil [, Integer max_stoerrelse [, String bibliotek [, Array filtyper_tilladt]]]) */
if (!in_array($filtype, $filtyper_tilladt)) { echo "<p>Filtypen <b>'$filtype'</b> er ikke tilladt. De tilladte filtyper er <b>'" . implode("', '", $filtyper_tilladt) . "'</b>. Filen <b>'$filnavn'</b> kan derfor ikke uploades!<br><br><a href=\"java script:history.go(-1)\">Gå tilbage</a></p>"; $fejl = 1; }
if ($fil_stoerrelse > $max_stoerrelse) { echo "<p>Filen <b>'$filnavn'</b> er for stor og kan ikke uploades. Den fylder <b>" . ceil($fil_stoerrelse) . " kb</b> og der kan maximalt uploades <b>$max_stoerrelse kb</b>!<br><br><a href=\"java script:history.go(-1)\">Gå tilbage</a></p>"; $fejl = 1; }
Hej mange tak for svar. Hvordan er det usikkert? Der kan vel ikke trænge andre filer end de tilladte igennem? Jeg tvivler på at jeg har evner til at bygge den anden kode op med samme funktioner som denne kode, jeg har lige forsøgt :)
Det kan snydes så en server tror den får en filtype, men filen rent faktisk er en php fil f.eks. Og hvis nu en bruger kan snyde dit system til at uploade php filer, kan han få fuld kontrol over dit system.
Jeg har prøvet at tilrette min artikel ganske hurtigt. Virker dette for dig?
<?php $uploadDirs = array(1 => '/Fanfotos', 2 => '/Gruppebilleder'); //Bibliotekerne hvor filer uploades til - husk chmod 777 $allowedFileTypes = array('jpg','gif','png','bmp'); //Hvilke filer vil vi acceptere bliver uploadet?
//Er der trykket på Upload file knappen? if(isset($_POST['myUpload'])) { //Har vi en fil? if(is_uploaded_file($_FILES['myFile']['tmp_name'])) { //Filendelse $extension = strtolower(pathinfo($_FILES['myFile']['name'],PATHINFO_EXTENSION));
//Er filen en af de filer vi gerne vil have? if(in_array($extension,$allowedFileTypes)) { //Hvilket dir er valgt? if(isset($_POST['bibliotek']) && is_numeric($_POST['bibliotek']) && $_POST['bibliotek'] > 0) { $dir = intval($_POST['bibliotek']); $uploadDir = $uploadDirs[$dir]; } else { //Default uploadDir valg... $uploadDir = $uploadDirs[1]; }
Jeg får denne fejl: Warning: move_uploaded_file() [function.move-uploaded-file]: SAFE MODE Restriction in effect. The script whose uid/gid is 1014/1014 is not allowed to access / owned by uid/gid 0/0 in /var/www/upload/upload.php on line 36
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.