askIT

  • main_navigation_menu_icon.png
  • ic_more_vert.png

PHP - Filer - Filopplastning

En svært nyttig del av PHP er dens evne til å håndtere filopplasting til serveren din. Men, å tillatte brukere å laste opp filer til serveren din åpner mange farlige veier, så vær forsiktig når du programmerer filopplasting.

HTML skjema

Før du kan bruke PHP til å administrere dine opplastinger, må du først bygge en HTML-skjema som lar brukeren velge en fil å laste opp. Se våre HTML-skjema-leksjon for en mer i dybden på skjemaer.

<?php
echo"
<form method=\"POST\" action=\"uploader.php\" enctype=\"multipart/form-data\">
<input type=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"100000\" />
Fil: <input name=\"uploadedfile\" type=\"file\" /> <br />
<input type=\"submit\" value=\"Last opp fil\" />
</form>
"
;
?>

Her er en kort beskrivelse av viktige deler av koden ovenfor:

Nå kan du lagre koden ovenfor og kalle det for upload.php. Hvis du vise det i en nettleser den skal se slik ut:

Velg en fil å laste:

Når brukeren klikker på send, vil dataene bli sendt over serveren, og brukeren vil bli omdirigert til uploader.php. Denne PHP filen kommer til å behandle skjemadata og gjøre alt arbeidet.

Hva kommer PHP til å gjøre?

Nå som vi har det rette HTML-skjema kan vi begynne å kode PHP script som kommer til å håndtere våre opplastinger. Vanligvis bør PHP-filen ta en viktig beslutning med alle opplastinger: beholde filen eller kaste den bort. En fil kan bli kastet bort fra mange grunner, blant annet:

Dette eksempelet er veldig enkel og utelater koden som skulle legge en slik funksjonalitet.

uploader.php

Når uploader.php filen kjøres, finnes den opplastede filen i en midlertidig lagringsområde på serveren. Hvis filen ikke flyttes til et annet sted vil den bli ødelagt! For å redde vår dyrebare fil kommer vi til å trenge arrayet $_FILES.

$_FILES array er der PHP lagrer all informasjon om filene. Det er to elementer i denne matrisen som vi trenger å forstå for dette eksempelet.

Nå kan vi endelig begynne å skrive et grunnleggende PHP-scriptet!

<?php
$target_path 
"uploads/";

$target_path $target_path basename$_FILES['uploadedfile']['name']);

if(
move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {
    echo 
"The file ".  basename$_FILES['uploadedfile']['name']).
    
" has been uploaded";
}
else{
    echo 
"There was an error uploading the file, please try again!";
}

?>

Dersom opplastingen er vellykket, vil du se teksten The file filename has been uploaded. Dette er fordi move_uploaded_file returnerer true hvis filen ble flyttet, og false om det hadde et problem.

Hvis det var et problem hadde feilmeldingen There was an error uploading the file, please try again! ville bli vist.

Vis forsiktighet

Merk: Dette skriptet er kun for utdanning. Vi anbefaler ikke å plassere dette på en nettside som kan vises for publikum.

Disse få linjer med kode vi har gitt deg vil tillate noen å laste opp data til serveren din. På grunn av dette, anbefaler vi at du ikke har en så enkel fil opplasteren tilgjengelig for allmennheten. Ellers kan du finne at din server er fylt med søppel, eller at serverens sikkerhet har blitt kompromittert.

mark_down.png Annonse

Akuratt nå: Ask IT bruker og anbefaler one.com for domener, e-post og webhotell!
hva-er-ditt-nye-domene.com
Besøk oss på one.com