Slik leser en tekstfil fra en klient som bruker PHP

Det er to metoder du kan bruke for å håndtere filopplasting fra en klient til en server med PHP. POST-metoden, som brukes av nettskjemaer, koder filen som del av HTTP-forespørsel fra klienten. Den PUT metoden, som brukes av kunder som Netscape Composer, skriver filen direkte til socket-tilkobling etablert med serveren.

Bruksanvisning

POST-metoden

1 Lag en fil opplasting skjema på websiden. Handlingen attributt er banen og filnavnet til PHP-filen som skal håndtere filopplasting. MAX_FILE_SIZE inngangsverdien er maksimumsstørrelsen i byte du vil gi rom for den opplastede tekstfil.

<Form enctype = "multipart / skjema-data" action = "your.php" method = "POST">

&lt;input type="hidden" name="MAX_FILE_SIZE" value="64000" />
Upload file: &lt;input name="fileupload" type="file" />
&lt;input type="submit" value="Upload" />

</ Form>

2 Rediger PHP-filen. Angi banen og filnavnet der lastet opp tekstfilen vil bli lagret på serveren. The $ _files matrise inneholder informasjon om den opplastede filen, refereres bruke filen inn attributtnavnet tildelt i websiden form.

$ Uploaddir = '/ srv / www / uploads /';
$ Filename = basename ($ _ FILES [ 'fileupload'] [ 'navn']);
$ Uploadfile = $ uploaddir. $ Filnavn;

3 Flytt den opplastede filen fra den midlertidige plasseringen der serveren lagres den til målet du satt for opplasting.

if (move_uploaded_file ($ _ FILES [ 'fileupload'] [ 'tmp_name'], $ uploadfile)) {

echo $filename . " uploaded. Thank you!\n";

}
else {

echo "Error uploading " . $filename . ": " . $_FILES['userfile']['error'] . "\n";

PUT Method

4 Rediger PHP-filen. Angi banen og filnavnet der lastet opp tekstfilen vil bli lagret på serveren. The $ _SERVER matrise inneholder informasjon om forespørselen, inkludert målet banen og filnavnet spurt av klienten ( 'REQUEST_URI').

$ Uploaddir = '/ srv / www / uploads /';
$ Filename = basename ($ _ SERVER [ 'REQUEST_URI']);
$ Uploadfile = $ uploaddir. $ Filnavn;

5 Åpne input stream til filen data som blir lastet opp.

$ innkommende = fopen ( "php: // input", "r");

6 Åpne en peker til målet filen der du vil lagre den opplastede filen.

$ Lagre for = fopen ($ uploadfile, "w");

7 Lese data fra den innkommende strømmen og skrive det til målfilen.

while ($ indata = fread ($ innkommende, 1024)) {
fwrite ($ Lagre for, $ indata);

8 Lukk inn- og fil bekker.

fclose ($ Lagre for);
fclose ($ innkommende);

Hint

  • Flere filer kan lastes opp med et enkelt skjema for innsending ved hjelp av POST-metoden. I websiden form, gi hver fil inntastingsfeltet med samme navn, med hakeparenteser etter inngangs navn verdi (f.eks name = "fileupload []"). Referanse hver fil i PHP-filen ved hjelp av en tredje rekke indeks matchende indeksnummeret for den spesifikke filen (for eksempel $ _files [ 'fileupload'] [ 'name'] [0]).
  • Å tillate filopplasting til ditt nettsted utgjør en betydelig sikkerhetsrisiko. Implementere passende autentisering og sikkerhet i serverkonfigurasjonen og innenfor dine PHP-filer å sikre at bare autoriserte brukere kan laste opp filer, begrense destinasjons kataloger for filopplasting og gir bare den nødvendige tilgang til opplastede filer.