Gå til innhold

[Løst] move_uploaded_file


Anbefalte innlegg

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 av Egron91
Lenke til kommentar
Videoannonse
Annonse

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.

  • Liker 1
Lenke til kommentar

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 av Egron91
Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...