Come leggere un file di testo da un client Utilizzo di PHP

August 16

Ci sono due metodi che è possibile utilizzare per gestire il caricamento di file da un client a un server con PHP. Il metodo POST, utilizzato dai moduli delle pagine Web, codifica il file come parte della richiesta HTTP da parte del cliente. Il metodo PUT, utilizzato dai client come Netscape Composer, scrive il file direttamente alla connessione socket stabilita con il server.

istruzione

Metodo POST

1 Creare un modulo di upload di file nella pagina Web. L'attributo action è il percorso e il nome del file PHP che verrà gestendo il caricamento del file. Il valore di ingresso MAX_FILE_SIZE è la dimensione massima in byte permetterete per il file di testo caricato.

<Form enctype = action = metodo "multipart / form-data" "your.php" = "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 Modificare il file PHP. Impostare il percorso e il nome del file in cui il file di testo caricato verrà salvato sul server. L'array $ _FILES contiene informazioni relative al file caricato, si fa riferimento utilizzando l'attributo nome dell'ingresso file assegnato in forma pagina Web.

$ Uploaddir = '/ srv / www / uploads /';
$ Nomefile = basename ($ _ FILES [ 'fileupload'] [ 'name']);
$ UploadFile = $ uploaddir. $ Nomefile;

3 Spostare il file caricato dalla posizione temporanea in cui il server memorizzato alla destinazione impostata per il caricamento.

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

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

}
altro {

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

Metodo PUT

4 Modificare il file PHP. Impostare il percorso e il nome del file in cui il file di testo caricato verrà salvato sul server. L'array $ _SERVER contiene informazioni relative alla richiesta, compreso il nome del percorso di destinazione e il file richiesto dal cliente ( 'REQUEST_URI').

$ Uploaddir = '/ srv / www / uploads /';
$ Nomefile = basename ($ _ SERVER [ 'REQUEST_URI']);
$ UploadFile = $ uploaddir. $ Nomefile;

5 Aprire il flusso di ingresso per i dati del file che è caricato.

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

6 Aprire un puntatore al file di destinazione in cui si desidera salvare il file caricato.

$ Salvaper = fopen ($ UploadFile, "w");

7 Leggere i dati dal flusso in entrata e scrivere il file di destinazione.

while ($ Indata = fread ($ in entrata, 1024)) {
fwrite ($ Salvaper, $ Indata);

8 Chiudere i flussi di input e di file.

fclose ($ Salvaper);
fclose ($ in entrata);

Consigli e avvertenze

  • Più file possono essere caricati con un unico invio di un modulo utilizzando il metodo POST. Nella forma pagina Web, dare ad ogni campo di input del file con lo stesso nome, con le parentesi quadre dopo il valore del nome di ingresso (ad esempio, name = "fileupload []"). Riferimento ogni file nel file PHP utilizzando un terzo indice di matrice corrispondente al numero di indice del file specifico (ad esempio, $ _FILES [ 'fileupload'] [ 'name'] [0]).
  • Permettere upload di file al tuo sito web rappresenta un notevole rischio per la sicurezza. Implementare l'autenticazione e la sicurezza appropriato nella configurazione del server e all'interno i file PHP per assicurare che solo gli utenti autorizzati possono caricare i file, limitare le directory di destinazione per il caricamento di file e solo fornire l'accesso necessario per i file caricati.