Tecnología

Inicio

Cómo cargar archivos con Ajax y PHP

Cómo cargar archivos con Ajax y PHP


Mientras que un archivo está siendo cargado a un sitio web utilizando HTML y PHP, la página Web no se puede volver a cargar hasta que la carga se ha completado. Esto podría tomar algún tiempo, sobre todo si se trata de un archivo de gran tamaño. Un desarrollador web puede evitar esto mediante el uso de AJAX (JavaScript asíncrono y XML) técnicas para que el usuario pueda seguir utilizando la página Web mientras que la carga de archivos se lleva a cabo.

Instrucciones

Subir asíncrono

1 Crear un documento de texto en blanco en el escritorio del equipo y cambiarle el nombre "filesave.php." Copia y pega el código de abajo en "filesave.php," y luego seleccione "Archivo | Guardar". Este script PHP recibirá el archivo de un formulario de envío HTML y guardarlo en el directorio actual en el servidor Web.

<? Php

$ Upload_result = 0;

$ Target_folder = "./";

$ = $ TARGET_PATH target_folder.basename ($ _FILES [ 'uploadfile'] [ 'nombre']);

si (@move_uploaded_file ($ _ FILES [ 'uploadfile'] [ 'tmp_name'], $ TARGET_PATH)) {

$upload_result = 1;

}

?>

2 Crear un documento de texto en blanco en el escritorio del equipo y cambiarle el nombre "fileupload.html." Abrir "fileupload.html" en el Bloc de notas y copiar y pegar el siguiente código. Cambio "yoursite.com" a su dominio del sitio web. Este código utiliza la técnica asíncrona de "encerrar" la respuesta filesave.php dentro del marco flotante "iframe_target", por lo que el sitio web no tiene que volver a cargar.

<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>

Por favor, introduzca un nombre de archivo:

<Input name = "uploadfile" type = "archivo" />

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

</ Form>

<Iframe id = "upload_target" name = estilo "iframe_target" = "width: 0; altura: 0"> </ iframe>

</ Body>

</ Html>

3 Subir "filesave.php" y "fileupload.php" en el directorio raíz de su sitio web, el uso de software de FTP.

4 Abra su navegador en "http://www.yoursite.com/fileupload.html", donde "yoursite.com" es el nombre de dominio del sitio web. Haga clic en "Examinar ..." y seleccione un archivo de gran tamaño como un archivo de imagen de la muestra, y luego haga clic en "Subir". La carga se completa cuando el navegador muestra "Done" en la parte inferior de la ventana. Compruebe que el archivo se ha cargado correctamente, utilizando su software de FTP.

El uso de DOM (Document Object Model) para mostrar un mensaje de estado

5 Copiar y pegar el siguiente código encima de la "</ head>" etiqueta de cierre en "fileupload.html" en el escritorio. La función "begin_upload" utiliza el elemento de documento "upload_status" para mostrar el "cargando ..." mensaje. La función "end_upload" será llamado por la respuesta de PHP después de que se ha guardado correctamente el archivo subido.

<Script>

begin_upload función () {

document.getElementById ( 'upload_status') innerHTML = "Cargando ...".;

return true;

}

end_upload función (resultado) {

if (result == 1){

. Document.getElementById ( 'upload_status') innerHTML = "El archivo se ha subido correctamente.";

} Else {

. Document.getElementById ( 'upload_status') innerHTML = "Se ha producido un error durante la carga.";

}

return true;

}

</ Script>

6 Inserte la cadena "onSubmit = 'begin_upload ();" "después de que la cadena" target =' iframe_target ' "dentro de la etiqueta" acción de formulario ", por lo que toda la etiqueta aparece a continuación. Esto permite que el ") begin_upload (" función que se llama cuando el usuario hace clic en el botón "Subir". Seleccione "Archivo | Guardar".

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

7 Pulse la tecla "Alt + Tab" para seleccionar "filesave.php" en el Bloc de notas. Copiar y pegar las dos líneas siguientes en la parte superior antes de la línea "<? Php", por lo que el script PHP utiliza una función de script de JavaScript llamada "init ()".

<Script type = "text / javascript">

función init () {

8 Copiar y pegar las siguientes líneas por debajo de la línea de fondo "?>", Por lo que el script PHP muestra el valor del resultado archivo guardado en la función ") (init". Seleccione "Archivo | Guardar".

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

}

window.onload = init;

</ Script>

9 Subir "filesave.php" y "fileupload.html" de su sitio web, sobrescribir las versiones anteriores.

10 Abra su navegador en "http://www.yoursite.com/fileupload.html", donde "yoursite.com" es el nombre de dominio del sitio web. Haga clic en "Examinar ..." y seleccione un archivo de gran tamaño y haga clic en "Subir". El mensaje "Cargando ..." ahora se mostrará durante la carga, y una vez terminado, el mensaje "cargado con éxito".