Egron91 Skrevet 20. september 2013 Del Skrevet 20. september 2013 (endret) Hei. Jeg kommer med et tema som har vært tatt opp så mange ganger før, men fant ingen konkrete svar på dette forumet, eller andre forum. Har sett x-antall videoer på youtube om løsningen, og endte opp med at phpacademy har best eksempel, som jeg har gjengitt nedenfor, men den fungerer ikke på min localhost eller via websiden... Virker som PHP ikke kan utføre "move_uploaded_file" funksjonen, da jeg kun får "Filen ble ikke lastet opp". Når jeg utfører phpinfo(); er "File_uploads" --> ON på begge steder. Hva gjør jeg galt, og er det noen gode ideer? ***HTML*** <form method="post" action="" enctype="multipart/form-data"> <input type="file" name="fil" /> <input type="submit" value="Last opp" name="submit" /> </form> *** PHP *** if(isset($_FILES['fil'])){ $errors = array(); $tillat_ext = array('jpg', 'jpeg', 'png', 'gif'); $fil_navn = $_FILES['fil']['name']; $fil_ext = strtolower(end(explode('.', $fil_navn))); $fil_size = $_FILES['fil']['size']; $fil_tmp = $_FILES['fil']['tmp_name']; if(in_array($fil_ext, $tillat_ext) === false){ $errors[] = 'Filtypen er ikke tillatt'; } if($fil_size > 2097152){ $errors[] = 'Filstørrelsen må være under 2MB'; } if(empty($errors)){ //Last opp fil if(move_uploaded_file($fil_tmp, 'bilder/'.$fil_navn)){ echo "Filen er lastet opp"; }else{ echo "Filen ble ikke lastet opp"; } }else{ foreach ($errors as $error){ echo $error, '<br />'; } } } Endret 20. september 2013 av Egron91 Lenke til kommentar
Thorbear Skrevet 21. september 2013 Del Skrevet 21. september 2013 Tips 1: Skru på feilrapportering mens du utvikler kode, da får du vite om alle feil umiddelbart, selv de som ikke gjør at ting slutter å fungere. Når du legger siden ut på nett kan du sette gjennom php.ini at feilene skal logges til en fil i steden, slik at du fortsatt kan finne de igjen, uten at de vises til brukeren. error_reporting(E_ALL); Tips 2: Utnytt var_dump(). I dette tilfellet kan det blandt annet være interessant å se var_dump($_FILES). Tips 3: Sjekk variablen $_FILES['fil']['error'], for å sjekke om selve opplastningen gikk i orden. Tips 4: Sjekk at katalogen 'bilder' eksisterer, og er på samme nivå som den kjørende php-fila. Om du fulgte tips 1 vil move_uploaded_file() gi en warning dersom katalogen ikke eksisterer. 1 Lenke til kommentar
Egron91 Skrevet 22. september 2013 Forfatter Del Skrevet 22. september 2013 (endret) Tusen takk, Thorbear! Det var at mappen og php-filen lå på forskjellige steder i katalogen. Dette fungerte visst ikke: - mappe1/script.php - mappe1/mappe2/filer/ Og dette fungerte: - mappe1/script.php - mappe1/filer/ You've made my day! Endret 22. september 2013 av Egron91 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å