Come caricare i file utilizzando AJAX e PHP

September 4

Come caricare i file utilizzando AJAX e PHP


Mentre un file viene caricato su un sito web utilizzando HTML e PHP, la pagina Web non può aggiornare fino a quando il caricamento è stato completato. Questo potrebbe richiedere un certo tempo, in particolare se si tratta di un file di grandi dimensioni. Uno sviluppatore Web può evitare questo utilizzando AJAX (Asynchronous JavaScript and XML) le tecniche per consentire all'utente di continuare a utilizzare la pagina Web mentre il caricamento di file è in corso.

istruzione

asincrono Upload

1 Creare un documento di testo vuoto sul desktop del computer e rinominarlo "filesave.php." Copia e incolla il codice qui sotto in "filesave.php," e quindi selezionare "File |. Salva" Questo script PHP riceverà il file da un modulo di posta HTML e salvarlo nella directory corrente sul server Web.

<? Php

$ Upload_result = 0;

$ Target_folder = "./";

$ Percorso_destinazione = $ target_folder.basename ($ _FILES [ 'UploadFile'] [ 'name']);

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

$upload_result = 1;

}

?>

2 Creare un documento di testo vuoto sul desktop del computer e rinominarlo "fileupload.html." Apri "fileupload.html" in Blocco note e copiare e incollare il seguente codice. Change "yoursite.com" al tuo dominio del sito web. Questo codice utilizza la tecnica asincrona di "racchiude" la risposta filesave.php dentro l'iframe "iframe_target," in modo che il sito web non ha bisogno di aggiornare.

<Html>

<Head>

</ Head>

<Body>

<Div id = "upload_status"> </ div>

<Form action = "http://www.yoursite.com/filesave.php" method = "post" enctype = "multipart / form-data" target = 'iframe_target'>

Si prega di inserire il nome del file:

<Input name = "UploadFile" type = "file" />

<Input type = "submit" value = "Upload" />

</ Form>

<Iframe id = "upload_target" name = stile "iframe_target" = "width: 0; altezza: 0"> </ iframe>

</ Body>

</ Html>

3 Carica "filesave.php" e "fileupload.php" nella directory principale del tuo sito web, utilizzando il software FTP.

4 Aprire il browser a "http://www.yoursite.com/fileupload.html" dove "yoursite.com" è il tuo sito web nome di dominio. Clicca su "Sfoglia ..." e selezionare un file di grandi dimensioni, ad esempio un file di immagine campione, e quindi fare clic su "Carica". Il caricamento completerà quando il browser visualizza "Fatto" nella parte inferiore della finestra. Verificare che il file è stato caricato con successo, utilizzando il software FTP.

Utilizzando DOM (Document Object Model) per visualizzare un messaggio di stato

5 Copiare e incollare il seguente codice sopra il "</ head>" tag di chiusura in "fileupload.html" sul desktop. La funzione "begin_upload" utilizza l'elemento documento "upload_status" per visualizzare la "... loading" messaggio. La funzione "end_upload" sarà chiamato dalla risposta PHP dopo aver salvato con successo il file caricato.

<Script>

Funzione begin_upload () {

document.getElementById ( 'upload_status') innerHTML = 'loading ....';

return true;

}

Funzione end_upload (risultato) {

if (result == 1){

. Document.getElementById ( 'upload_status') innerHTML = "Il file è stato caricato con successo.";

} altro {

. Document.getElementById ( 'upload_status') innerHTML = "Si è verificato un errore durante il caricamento.";

}

return true;

}

</ Script>

6 Inserire la stringa "onSubmit = 'begin_upload ();'" dopo la stringa "target = 'iframe_target'" all'interno del tag "form action", in modo che l'intero tag appare come di seguito. In questo modo il ") begin_upload (" funzione da chiamare quando l'utente fa clic sul pulsante "upload". Selezionare "File | Save".

<Form action = "http://www.yoursite.com/filesave.php" method = "post" enctype = target "multipart / form-data" = 'iframe_target' onSubmit = 'begin_upload ();' >

7 Premere il tasto "Alt + Tab" per selezionare "filesave.php" in Blocco note. Copiare e incollare le seguenti due righe in alto prima della riga "<? Php", in modo che lo script PHP utilizza una funzione di script JavaScript chiamato "init ()."

<Script type = "text / javascript">

funzione init () {

8 Copiare e incollare le seguenti righe sotto la linea di fondo "?>", In modo che lo script PHP genera il file salvato valore del risultato nel "init) (" la funzione. Selezionare "File | Save".

(<? Php echo $ upload_result?;>) Top.end_upload;

}

window.onload = init;

</ Script>

9 Carica "filesave.php" e "fileupload.html" al tuo sito web, sovrascrivendo le versioni precedenti.

10 Aprire il browser a "http://www.yoursite.com/fileupload.html" dove "yoursite.com" è il tuo sito web nome di dominio. Clicca su "Sfoglia ..." e selezionare un file di grandi dimensioni e quindi fare clic su "Carica". Il messaggio "loading ..." ora visualizza durante il caricamento, e al termine, verrà visualizzato il messaggio "caricato con successo".