Last opp fil i PHP

Last opp fil i PHP

Filopplasting er en vanlig oppgave for webapplikasjoner. Ulike typer filer er pålagt å laste opp basert på applikasjonen. Bildefiler, tekstfiler, PDF -filer, XML -filer osv. kan lastes opp ved å bruke PHP -skript. En eller flere filer kan lastes opp av PHP. Det er noen PHP -direktiver i PHP.Inn jeg Konfigurasjonsfil og PHP-innebygde funksjoner relatert til filopplasting som er diskutert i denne opplæringen. HTML har en bestemt attributt i skjemaet for filopplastningsoppgaver, det vil si Enctype.

PHP -direktiver for filopplasting

PHP -direktiv Hensikt
file_uploads Verdien av dette direktivet må være For å laste opp filen ved hjelp av PHP -skript. Standardverdien for dette direktivet er .
upload_tmp_dir Den brukes til å angi den midlertidige katalogen der filen blir lastet opp.
upload_max_filesize Den brukes til å angi maksimal størrelse på filen som kan lastes opp.
max_file_uploads Det brukes til å angi antall filer som kan lastes opp.
post_max_size Det brukes til å angi maksimal størrelse på postdataene, og verdien av dette direktivet må være mer enn verdien av UPLOAD_MAX_FILESIZE -direktivet fordi filen lastes opp etter postforespørselen.
max_input_time Det brukes til å angi maksimal tid til å lese dataene fra opplastingsfilen.
max_execution_time Det brukes til å angi maksimal tid på sekunder for å utføre skriptet for å laste opp filen.
Memory_limit Det brukes til å angi den maksimale minnestørrelsen som kreves for å utføre et PHP -skript for å laste opp filen.

PHP -funksjoner for filopplasting

To innebygde funksjoner brukes hovedsakelig i PHP for å laste opp filen som er nevnt nedenfor.

EN. is_uploaded_file ()
Det brukes til å sjekke om filen er lastet opp gjennom HTTP -innlegget som hjelper til med å forhindre et angrep fra den ondsinnede brukeren.

B. move_uploaded_file ()
Den brukes til å flytte den opplastede filen til webserverens plassering. Denne funksjonen vil returnere sant hvis filen lastes opp og flyttes med suksess.

PHP -filopplastingsvariabel

Variabelen for $ _Files -array lagrer all informasjon relatert til å laste opp en fil til serveren. Det er en superglobal variabel av PHP som er tilgjengelig hvor som helst fra manuset. Den inneholder fem typer informasjon: filnavn, type, størrelse, midlertidig filnavn og feil relatert til å laste opp filen. Hensikten med hver verdi av $ _file -arrayen er nevnt nedenfor. Anta at navnet på opplastingsfeltnavnet er 'laste opp' her.

EN. $ _Files ['opplasting'] ['navn']
Det brukes til å få det originale filnavnet som er lastet opp av klientens datamaskin.

B. $ _Files ['opplasting'] ['tmp_name']
Det brukes til å få det midlertidige filnavnet som er lagret på serveren midlertidig.

C. $ _Files ['opplasting'] ['type']
Den brukes til å få mime -typen til den opplastede filen.

D. $ _Files ['opplasting'] ['størrelse']
Den brukes til å få størrelsen på den opplastede filen i byte.

E. $ _Files ['opplasting'] ['feil']
Det brukes til å få feilkoden som er relatert til opplastingsoppgaven. Variabelen kan inneholde noen av de 7 typene verdier som er nevnt nedenfor.

Feil kode Beskrivelse
1- Upload_err_ok Den genererer når filen laster opp vellykket.
2- upload_err_ini_size Det genererer hvis filstørrelsen overstiger verdien av upload_max_filesize Direktiv som er definert i PHP.ini -fil.
3- upload_err_partial Det genererer hvis filstørrelsen overstiger verdien av max_file_size -direktivet som er definert i HTML -skjemaet.
4- upload_err_no_file Det genererer hvis ingen fil lastes opp.
5- upload_err_no_tmp_dir Det genererer hvis ingen midlertidig katalog mangler.
6- upload_err_cant_write Det genererer hvis det ikke er noen skrivetillatelse på serverplassen.
7- Upload_err_extension Det genererer hvis PHP -utvidelsen stopper opplastningsoppgaven.

Last opp fil ved hjelp av PHP

Ulike eksempler på å laste opp filen ved hjelp av PHP -skript er vist i denne delen av opplæringen.

Eksempel 1: Last opp alle typer filer

Du kan laste opp filen på det nåværende stedet der PHP -skriptet utfører eller i en bestemt mappe. Du må opprette mappen på serverplassen for å laste opp en fil i en bestemt mappe før du utfører PHP -skriptet. Jeg har opprettet en mappe som heter 'opplastinger ' Inne i arbeidsmappen. Opprett en PHP -fil med følgende skript som vil laste opp en fil av alle typer inne i 'opplastinger ' mappe. Et HTML -skjema med et filtypefelt og en innsendingsknapp har blitt brukt i skriptet for å velge filen fra klientens datamaskin for opplasting. Hvis 1 genereres som en feilkode etter å ha lastet opp filen, lastes filen lastet opp. Neste, The move_upload_file () Funksjonen har blitt brukt til å flytte den opplastede filen til serverplassen. Suksessmeldingen vil bli skrevet ut hvis filen lastes opp til serverplassen med hell; Ellers vises en feilmelding.

// sjekk hvilken fil er valgt eller ikke
if (isset ($ _ filer ['uploadfile']))

// sjekk en hvilken som helst opplastingsfeil eksisterer eller ikke
if ($ _files ['uploadfile'] ['feil'] === upload_err_ok)

// Les det originale filnavnet
$ filnavn = $ _files ['uploadfile'] ['name'];
// Les midlertidig filnavn
$ filetemppath = $ _files ['uploadfile'] ['tmp_name'];
// Angi den opplastingsfilbanen
$ filepath = dirname (__ file__).'/opplasting/'.$ filnavn;
// Last opp filen ved å bruke MOVE_UPLOAD_FILE () -funksjonen
if (move_uploaded_file ($ filetemppath, $ filepath))

// Skriv ut suksessmeldingen
ekko '

Filen lastes opp vellykket.

';

ellers

// Skriv ut feilmeldingen
ekko '

Feil på å laste opp filen.
'. $ _Files ['uploadfile'] ['feil']. '

';


ellers

// Skriv ut feilmeldingen
ekko '

Feil på å laste opp filen.
'. $ _Files ['uploadfile'] ['feil']. '

';


ellers

?>




Last opp fil ved hjelp av PHP



Velg Fil:





?>

Produksjon
Følgende utdata vises hvis skriptet blir utført fra webserveren.

Klikk på Bla gjennom Knapp for å velge filen for opplasting og trykk på opplastingsknappen for å laste opp filen til serveren.

Følgende melding vises hvis filen er lastet opp vellykket.

Eksempel 2: Last opp en fil av den spesifikke typen og størrelsen

Måten å laste opp filen ved hjelp av en egen HTML -fil og PHP -fil er vist i dette eksemplet. Opprett en HTML -fil med følgende skript for å vise skjemaet for å laste opp filen.

opplasting.html





Last opp JPEG -fil ved hjelp av PHP



Velg Fil:



Lag et PHP -skript med følgende skript som bare vil laste opp JPEG -filen, og størrelsen vil være mindre enn 300000 byte. Filtypen og størrelsen er lest ved å bruke $ _Files ['UploadFile'] ['Type'] og $ _Files ['UploadFile'] ['Størrelse'] -variabler. Suksessmeldingen vises hvis den opplastede filtypen og størrelsen samsvarer med kriteriene som er definert i 'IF' -tilstanden; Ellers vises en feilmelding.

Upload2.PHP

// sjekk hvilken fil er valgt eller ikke
if (isset ($ _ filer ['uploadfile']))

// sjekk en hvilken som helst opplastingsfeil eksisterer eller ikke
if ($ _files ['uploadfile'] ['feil'] === upload_err_ok)

// Les det originale filnavnet
$ filnavn = $ _files ['uploadfile'] ['name'];
// Les midlertidig filnavn
$ filetemppath = $ _files ['uploadfile'] ['tmp_name'];
// Les filstørrelsen
$ filSize = $ _files ['uploadfile'] ['størrelse'];
// Les filtypen
$ filetype = $ _files ['uploadfile'] ['type'];
// sjekk filtypen og filstørrelsen
if ($ filetype == 'image/jpeg' && $ filesize < 300000)

// Angi den opplastingsfilbanen
$ filepath = dirname (__ file__).'/opplasting/'.$ filnavn;
// Last opp filen ved å bruke MOVE_UPLOAD_FILE () -funksjonen
if (move_uploaded_file ($ filetemppath, $ filepath))

// Skriv ut suksessmeldingen
ekko '

Filen lastes opp vellykket.

';

ellers

// Skriv ut feilmeldingen
ekko '

Feil på å laste opp filen.
'. $ _Files ['uploadfile'] ['feil']. '

';


ellers
// Skriv ut feilmeldingen
ekko '

Filtype eller størrelse støttes ikke.

';

ellers

// Skriv ut feilmeldingen
ekko '

Feil på å laste opp filen.
'. $ _Files ['uploadfile'] ['feil']. '

';

inkluderer ('UploadForm.html ');

ellers
inkluderer ('UploadForm.html ');
?>

Produksjon
I følgende utgang blomst.png Filen er valgt som ikke er en JPEG -fil:

Følgende utgang vises etter å ha trykket på Laste opp knapp:

Her, blomsten1.JPEG -fil er valgt som er en JPEG -fil.

Nå vises følgende utgang etter å ha trykket på Laste opp knapp:

Eksempel 3: Sjekk filen før du lastes opp

Lag en PHP -fil med følgende skript som bruker is_uploaded_file () Funksjon for å sjekke om filen lastes opp gjennom HTTP -innlegget før du flytter filen til serveren. Skriptet vil bare laste opp tekstfilen og skrive ut innholdet i tekstfilen etter å ha lastet opp filen med hell.

// sjekk om noen fil er valgt eller ikke
if (isset ($ _ filer ['uploadfile']))

// Les det originale filnavnet
$ filnavn = $ _files ['uploadfile'] ['name'];
// Les midlertidig filnavn
$ filetemppath = $ _files ['uploadfile'] ['tmp_name'];
// Les filtypen
$ filetype = $ _files ['uploadfile'] ['type'];
// Angi den opplastingsfilbanen
$ filepath = dirname (__ file__).'/opplasting/'.$ filnavn;
// sjekk filtypen
if ($ filetype == 'tekst/vanlig')

// sjekk en hvilken som helst opplastingsfeil eksisterer eller ikke
if ($ _files ['uploadfile'] ['feil'] === upload_err_ok)

if (is_uploaded_file ($ filetemppath))
// Last opp filen ved å bruke MOVE_UPLOAD_FILE () -funksjonen
if (move_uploaded_file ($ filetemppath, $ filepath))

// Skriv ut suksessmeldingen
ekko $ filnavn ."lastes opp vellykket.
";
ekko "Innholdet i filen:
";
readfile ($ filepath);

ellers

ekko 'feil laster opp filen.
'. $ _Files ['uploadfile'] ['feil'];


annet
Echo "-filen lastes ikke opp.";



ellers
Echo "-filen er ikke en tekstfil.";

ellers

?>




Last opp fil ved hjelp av PHP



Velg Fil:




Produksjon
I den følgende utdata er det valgt en tekstfil for opplasting:

Innholdet i filen er vist i utdataene etter å ha lastet opp filen med hell.

Konklusjon

Filopplastningsoppgaven er et vanlig krav for alle webapplikasjoner. Bruken av filopplastingsvariabelen og de innebygde funksjonene til PHP er vist i denne opplæringen ved å bruke flere fillasting av eksempler. Hvis du vil, kan du laste opp mer enn en fil om gangen ved å bruke PHP -skriptet som er dekket i denne opplæringen. Du kan også laste opp en mappe som inneholder flere filer ved å bruke PHP -skriptet.