Valores del bucle sumador en java. Ciclos. Bucle while de Java: descripción y ejemplos

Probablemente muchos se hayan encontrado con la pregunta "¿Cómo cargar un archivo al servidor usando JS y JQuery?".
Y probablemente no todos pudieron hacer esto. De hecho, no todo es tan difícil como parece.
EN esta lección Describiré el proceso de cargar un archivo al servidor (hosting).
La tecnología Ajax se utiliza para intercambiar datos entre el navegador y el servidor web.
Versión de JQuery utilizada en la receta: 2.2.2.

Creamos marcado primitivo a partir de etiquetas html, cabeza y cuerpo.
EN etiqueta de cabeza debe especificar la ruta a la biblioteca jquery.
En el ejemplo estoy usando jquery del servidor de Google.

En la etiqueta del cuerpo creamos un formulario que consta de etiqueta de entrada y botón.
Usando input type="file" seleccionas un archivo para cargar.
La etiqueta del botón es necesaria para ejecutar el código js para transferir el archivo.

Configuramos el formulario name="uploader", enctype="multipart/form-data", método="POST".
Nombre del formulario: nombre="cargador"
Método de codificación de datos del formulario: enctype="multipart/form-data"
Método de transferencia de datos: método="POST"

Enviar este archivo: Subir

Todo el código de marcado html y js:
Enviar este archivo: Subir

Pasemos al código del script java.
Para transferir un archivo, debe transferir el formulario completo:
$("formulario").enviar(función(e) (

Leemos los datos del formulario en una variable:
var formData = nuevo FormData($(esto));

A continuación, utilizamos la tecnología ajax para transferir datos al servidor web.
Si la transferencia del archivo se realiza correctamente, se mostrará un mensaje en una ventana emergente.
Si se produce algún error o falta el archivo se mostrará un mensaje con el texto del problema surgido.
$.ajax(( url: "archivo.php", tipo: "POST", datos: formData, async: false, éxito: función (msg) ( alerta (msg); ), error: función (msg) ( alerta ( "¡Error!"); caché: falso, tipo de contenido: falso, datos de proceso: falso));

Todo el código está en script java con usando jquery:

Ahora todo lo que queda es el código del lado del servidor para recibir datos del formulario. método POST pedido.

obtenemos directorio raíz sitio y asignar una carpeta para descargar archivos:
$uploaddir = $_SERVER["DOCUMENT_ROOT"].DIRECTORY_SEPARATOR."uploads".DIRECTORY_SEPARATOR;

Leyendo el archivo descargado:
$subirarchivo = $subirdir . nombre base($_FILES["archivo de usuario"]["nombre"]);

Comprobamos si el archivo está cargado.
De acuerdo con los datos entrantes, asignamos un mensaje adjunto.
Si el archivo no está cargado, cárguelo en el directorio especificado en $uploadfile:
if (move_uploaded_file($_FILES["userfile"]["tmp_name"], $uploadfile)) ( $out = "El archivo es válido y se cargó correctamente.\n"; ) else ( $out = "Posible ataque de carga de archivos !\n"; )

Al ejecutar acciones especificadas se devuelve la respuesta.

Todo el código en php:

Todo código html incluyendo js:

Envíe este archivo: Cargue $("form").submit(function(e) ( var formData = new FormData($(this)); $.ajax(( url: "file.php", escriba: "POST", datos: formData, async: false, éxito: function (msg) ( alert(msg); ), error: function(msg) ( alert("Error!"); ), cache: false, contentType: false, ProcessData: false )); e.preventDefault();

Descargar el archivo de código fuente:

Cargar archivos o imágenes a un servidor es una tarea bastante típica. Pero el progreso no se detiene y, por eso, ahora, por supuesto, quiero descargar archivos en fondo. Como regla general, antes esto se podía implementar usando tecnologías flash o marco flotante. Además, muchas personas utilizan complementos como jQuery Form Plugin o Ajax File Upload Plugin o Multiple File Upload Plugin y muchos otros. Con la llegada del objeto FormData, todo se ha vuelto mucho más sencillo. FormData() le permite componer un conjunto de datos para enviar al servidor mediante XMLHttpRequest.

Intentemos escribir nuestro propio código sin ningún complemento (bueno, excepto el marco jQuery, por supuesto) para cargar imágenes o archivos al servidor en segundo plano. En general, el algoritmo de nuestras acciones será algo así: rellenar los campos del formulario con datos. Los campos pueden ser cualquier cosa, texto, área de texto, selección y archivos. Cuando seleccionas archivos, gracias a nuestro código jQuery, estos archivos se descargarán en segundo plano a un directorio temporal en el servidor, por ejemplo “tmp”. A continuación, cuando presionas el botón enviar formularios, los datos se envían a un script de servidor que los procesará. Imaginemos que se trata de artículos. Registraremos los datos transmitidos en una base de datos con una identificación única. A continuación, crearemos un directorio en el directorio “imágenes” con un número único “id” y si teníamos algún archivo en la carpeta “tmp”, lo copiaremos a la carpeta “id” creada y luego borraremos el archivo “tmp”. ”carpeta. Para resumir: completamos las imágenes en tmp como fondo, al enviar el formulario escribimos los datos en la base de datos, tendremos numero unico archivos. Creamos una carpeta con este número y movemos nuestros archivos allí. Todo. En este artículo, no consideraremos cargar archivos en la base de datos ni copiarlos. Creo que aquí habrá algo para todos. Nos centraremos en una cosa: carga asincrónica imágenes (o archivos).

Así que aquí está nuestra pieza html. Aquí prestaremos atención al hecho de que tenemos un archivo GIF con una imagen del precargador (círculo en bucle), que ocultamos de la visualización con estilos. También asignaremos id = file al campo de archivo y enctype = “multipart/form-data” al formulario. Nombre campos de archivo será el archivo, es decir para que podamos trabajar con el array, ya que se nos permite subir múltiples archivos (atributo múltiple).

#preloader (visibilidad: oculto;) Agregar información

En este formulario, además del campo archivo, tenemos un par de campos por ejemplo: entrada=texto. Aquellos. Ante nosotros hay un formulario normal, por ejemplo para el panel de administración, que es un conjunto de campos que necesita. Para empezar, si quieres, puedes comprobar el funcionamiento del script escribiendo las líneas que muestran la matriz FILES al principio del archivo:

//subir.php print_r($_FILES);

Ahora escribamos nuestro script de servidor, que será llamado desde usando jQuery. Su tarea es transferir los archivos cargados desde el directorio temporal del servidor al nuestro, por ejemplo, como decidimos en “tmp”, y luego mostrarlos.

//función upload.php show_dir($dir) // función para mostrar imágenes de la carpeta tmp ( $list = scandir($dir); unset($list,$list); foreach ($list as $file) ( echo " "; ) ) foreach ($_FILES as $key => $value) ( ​​​​//mover archivos a tmp move_uploaded_file($value["tmp_name"], "tmp/".$value["name"]); ) show_dir( "./tmp/");

Y ahora nuestro script js, que cargará nuestros archivos al servidor en segundo plano. Toda la magia se hará gracias al objeto FormData(). Agregaremos este código al final de nuestro index.php antes de la etiqueta.

$(documento).ready(función())( $("#preloader").hide(); $("#file").bind("cambiar", función())( var datos = new FormData() ; var error = ""; jQuery.each($("#file").files, función(i, archivo) ( if(file.name.length).< 1) { error = error + " Файл имеет неправильный размер! "; } //Проверка на длину имени if(file.size >1000000) ( error = error + " Archivo " + nombre.archivo + " es demasiado grande."; ) //Comprobando el tamaño del archivo if(file.type != "image/png" && file.type != "image/jpg " " && !file.type != "imagen/gif" && file.type != "imagen/jpeg") ( error = error + "Archivo " + file.name + " no coincide con png, jpg o gif" ; ) //Comprobando tipos de archivos data.append("archivo-"+i, archivo);

)); if (error! = "") ($("#info").html(error);) else ( $.ajax(( url: "upload.php", datos: datos, caché: falso, tipo de contenido: falso, ProcessData: falso, escriba: "POST", beforeSend: function() ( $("#preloader").show(); ), éxito: function(data)( $("#info").html(data); $("#preloader").ocultar();
Bueno, eso parece ser todo. Si alguien no entiende algo que pregunte. Si alguien tiene alguna adición, ¡yo también me alegraré!

Consejo: si aún no ha utilizado código para eliminar archivos de ningún directorio, le recomiendo cambiar la función de eliminación de rmdir a echo para realizar una prueba y asegurarse de que solo se eliminarán los archivos que desea eliminar. Los precargadores de GIF se pueden tomar, por ejemplo, de mi lección Cómo hacer animación Gif. Ejemplos al final del artículo.

ACTUALIZACIÓN: Si alguien quiere agregar belleza, por ejemplo una barra de progreso, entonces necesitaremos agregar algunas líneas de código. EN plantilla html
Agregaremos un superelemento de html5: progreso, y en el código js agregaremos varias líneas con un objeto XMLHttpRequest.

Y así, nuestro html se complementará con lo siguiente:

Y agreguemos al código js:

Función ProgressHandlingFunction(e)( if(e.lengthComputable)( $("progress").attr((value:e.loaded,max:e.total)); ) )

Xhr: function() ( var myXhr = $.ajaxSettings.xhr(); if(myXhr.upload)( // comprueba que la carga está en progreso myXhr.upload.addEventListener("progress",progressHandlingFunction, false); //pasando a valores de función) return myXhr;

El resultado final del código js:< 1) { error = error + " Файл имеет неправильный размер! "; } if(file.size >1000000) ( error = error + " Archivo " + nombre.archivo + " es demasiado grande."; ) if(tipo.archivo!= "imagen/png" && tipo.archivo!= "imagen/jpg" &&!archivo. tipo != "imagen/gif" && archivo.tipo != "imagen/jpeg") ( error = error + "Archivo " + nombre.archivo + " no coincide con png, jpg o gif"; ) data.append( "archivo -"+i, archivo);

)); if (error != "") ($("#info").html(error);) else ( $.ajax(( url: "productUploadImg.php", escriba: "POST", xhr: function() ( var myXhr = $.ajaxSettings.xhr(); if(myXhr.upload)( // comprobando que la carga está en progreso myXhr.upload.addEventListener("progress",progressHandlingFunction, false); //pasando valores a la función ) devolver myXhr ), datos: datos, caché: falso, tipo de contenido: falso, datos de proceso: falso, antes de enviar: función() ( $("#preloader").show(); ), éxito: función(datos)( $( "#info" ).html(data); $("#preloader").hide() , error: errorHandler = function() ( $("#info").html("Error al cargar archivos"); ) )); esto es muy interesante artículo

, sobre cómo subir archivos al servidor usando tecnología AJAX. Como ya sabes, ajax es un javascript asíncrono que te permite trabajar con el servidor sin recargar las páginas en el navegador. Esta tecnología es muy útil para implementar nuestra idea: cargar archivos al servidor sin recargar las páginas del navegador. Nuestra idea también se puede implementar de otras maneras; lea todo esto a continuación en nuestro artículo.

¿Qué aprenderemos hoy? Subir archivos al servidor usando AJAX + jQuery + PHP Implementación de carga de archivos al servidor desde usando AJAX , un poco más complicado que simplemente enviar un mensaje de texto POST o OBTENER solicitud

. Pero no es tan difícil entender y dominar esta técnica. Si aún no comprende completamente cómo interactúan AJAX y PHP, le aconsejo que primero lea el artículo sobre. Pero incluso si no sabes cómo funciona la tecnología AJAX, está bien, ya que usaremos la biblioteca jQuery y el complemento ajax_upload. Y si sigue todos los ejemplos e instrucciones paso a paso, podrá implementar un excelente cargador de archivos al servidor. La esencia del método: crearemos imagen HTML cargador, que contendrá: un campo de entrada de archivo, un botón de confirmación, un bloque de estado de descarga (mostrará: "descargado" o "error"), una lista ul (se agregarán nuevos elementos DOM, en otras palabras, esto es una lista de archivos descargados). Crearemos un controlador para el botón de confirmación en JS y usaremos y pase el archivo al complemento ajax_upload, que enviará el archivo y todos los datos necesarios al lado del servidor. Lado del servidor, este es nuestro. aplicación PHP, que guardará el archivo en la carpeta deseada y devolverá el resultado del trabajo. O simplemente devolverá un mensaje de error si algo sale mal. Tenemos una tarea, ¿empezamos?

Código HTML ajax del cargador.

vamos a crear archivo html, que contendrá el esqueleto de nuestro cargador de archivos. Te daré el código HTML y luego te explicaré de qué se trata.

Cargar archivo

Como puede ver, el código HTML del cargador ajax es insoportablemente complejo. Pero aún así vale la pena aclarar qué es qué:

< div id=" upload" >Cargar archivo es nuestro botón de confirmación para cargar un archivo al servidor. A continuación se muestra el código CSS para el diseño.

< span id=" status" >- este es el bloque en el que colocaremos la respuesta del lado del servidor de la aplicación. Ya sea "Cargado" o "Error".

< ul id=" files" >- esta es una lista de archivos que nuestro cargador jquery + ajax cargó en el servidor.

Como prometí, proporcionaré a continuación el código de estilo CSS para los botones de confirmación de carga de archivos:

#upload( margen:30px 200px; relleno:15px; peso de fuente:negrita; tamaño de fuente:1.3em; familia de fuentes:Arial, Helvetica, sans-serif; alineación de texto:centro; fondo:#f2f2f2; color: #3366cc; borde: 1px sólido #ccc; cursor: puntero! importante; -moz-border-radius:5px;

Aplicación PHP del lado del servidor

Como se menciona en la esencia del método, el lado del servidor simplemente copia (guarda) el archivo y devuelve el resultado de su trabajo (“Cargado” o “Error”). Pero esto es sólo un ejemplo y no se debe confiar en él. No hay protección contra trucos de hackers y no hay límites de tamaño de archivo. Si crea un gestor de arranque para uso público, asegúrese de implementar las adiciones anteriores. A continuación se muestra el código PHP para un cargador de archivos de ejemplo. Cree un archivo llamado upload-file. php y ponle el siguiente código:

Si miras de cerca, notarás que todo aquí está escrito en texto ruso, o mejor dicho:

$uploaddir: directorio en el servidor donde se cargarán los archivos.

$ archivo: el nombre del archivo descargado, al que se adjunta la ruta al directorio del servidor.

Lo más sencillo ya está hecho. La parte divertida está por llegar: el lado jQuery + AJAX del cargador de archivos.

código javascript

Como ocurre con cualquier otra aplicación que utilice JS, el código debe colocarse en el encabezado del documento. una cosa mas nota importante: antes de escribir este código JS, no olvide incluir de antemano la biblioteca jQuery y el complemento ajax_ upload. Si ya lo has hecho, genial, comencemos a escribir código:

$(function())( var btnUpload=$("#upload"); var status=$("#status"); new AjaxUpload(btnUpload, ( acción: "upload-file.php", //Nombre del nombre del campo de entrada del archivo: "uploadfile", onSubmit: function(file, ext)( if (! (ext && /^(jpg|png|jpeg|gif)$/.test(ext)))( // Validación del archivo extensiones status.text (Solo archivos JPG, PNG, GIF"); return false; ) status.text("Subiendo..."); ), onComplete: función(archivo, respuesta)( //Borrar el estado del texto de estado. text("") ; //Agrega los archivos cargados a la hoja if(response==="success")( $("").appendTo("#files").html("
"+archivo).addClass("éxito"); ) else( $("").appendTo("#archivos").text(archivo).addClass("error"); ) ) )); ));

Primero, inicializamos el acceso al botón de confirmación de carga y lo escribimos en la variable btnUpload. Al mismo tiempo, obtenemos acceso al bloque de mensajes del servidor (estado). Luego viene el trabajo con el complemento de carga ajax. Creamos un nuevo objeto y especificamos los parámetros que necesitamos:

Acción: ruta a nuestro servidor controlador de archivos cargados.

Nombre es el nombre del campo de entrada desde el cual recibiremos el archivo subido al servidor.

onSubmit: funciones que se ejecutan antes de que ajax cargue archivos al servidor. En nuestro caso, se trata de una validación de los archivos descargados (verificando las extensiones compatibles). Pero nuevamente, la verificación, como dicen para los "de mente cerrada", es fácil de eludir, por lo que vale la pena verificarla nuevamente en el lado del servidor de la aplicación.

estado. texto: texto que se muestra durante el proceso ajax de cargar archivos al servidor. Tenga en cuenta que si los archivos no son compatibles, se muestra un mensaje de error.

onComplete: ejecuta la función cuando el archivo se carga en el servidor. En esta función: borre el valor de status.text; agregue los archivos descargados a la hoja de archivos.

Como puedes ver, subir archivos al servidor usando AJAX es más fácil de lo que parecía. Pero aún así, me confunde la presencia de la biblioteca jQuery en este método. Y si sabe cómo implementar la descarga de archivos ajax sin usar jQuery, hágamelo saber en los comentarios del artículo.

Subir múltiples archivos al servidor usando AJAX, jQuery, PHP

Si, por sus necesidades personales, necesita realizar una hermosa carga de varios archivos al servidor usando AJAX y PHP, entonces tendrá que usar algunas adiciones a la biblioteca jQuery. A saber:

Complemento de formulario jQuery v2.18

Complemento para el correcto trabajo de ajax con campos y formularios.

Dónde conseguirlo: www.malsup.com/jquery/form/

Complemento jQuery BlockUI v2.14

Un complemento que le permite mostrar hermosos mensajes de error.

Dónde conseguirlo: www.malsup.com/jquery/block/

Complemento jQuery para carga de múltiples archivos v1.31

Un complemento para la biblioteca jQuery que te permite cargar varios archivos al mismo tiempo.

Dónde conseguirlo: www.fyneworks.com/jquery/multiple-file-upload/

Si ya ha descargado todos estos complementos y, por supuesto, la biblioteca jQuery, podemos comenzar a desarrollar. Además, necesitamos crear un archivo PHP, como en el ejemplo anterior, que procesará los datos en el lado del servidor. Llamémoslo: doajaxfileupload.php. Ahora, con más detalle.

jQuery Form Plugin es un complemento excelente, se utiliza para enviar archivos al servidor mediante el método ajax. Este complemento también se puede utilizar de otras formas.

Complemento jQuery BlockUI: se utiliza con fines estéticos, para mostrar hermosos mensajes sobre el funcionamiento correcto del complemento de carga de archivos múltiples.

Complemento de carga de múltiples archivos: este complemento es la base de nuestro cargador de múltiples archivos. Le permite seleccionar múltiples archivos. Al mismo tiempo, tiene configuraciones flexibles para limitar el tipo de archivos, configurar la cantidad de archivos descargados, verificar el archivo en busca de duplicados (si dicho archivo ya está seleccionado), etc.

Ahora que tenemos todo lo que necesitamos, podemos comenzar a desarrollar un script ajax para descargar varios archivos.

En el archivo index.php, creo que todo está claro. Aquí está el formulario de carga de archivos real y la biblioteca jQuery y todos los complementos necesarios para trabajar con ajax están conectados. Algunas palabras sobre el código y la configuración del complemento:

$(".MultiFile").MultiFile(( aceptar:"jpg|gif|bmp|png|rar", max:15, STRING: ( eliminar:"eliminar", seleccionado:"Seleccionado: $archivo", denegado:" Tipo de archivo no válido: $ext!", duplicado:"Este archivo ya está seleccionado:\n$file!" )));

Especifique las extensiones de archivos permitidas para la descarga, indique la cantidad máxima de archivos descargados.

$("#cargando").ajaxStart(function())(((... ));

Muestra y elimina animaciones cuando se cargan archivos ajax en el servidor.

$("#uploadForm").ajaxForm(( ... ));

Responsable de enviar archivos al servidor.

doajaxfileupload.php es nuestro lado del servidor de la aplicación, todo lo que contiene es bastante claro, si lo necesitas, puedes editarlo a tu gusto.

Quizás se trate de subir varios archivos al servidor usando AJAX, jQuery y PHP. Espero que todo te salga tan bien como a mí.

Subir archivos usando JS + IFRAME + PHP

Si no eres fanático de la belleza, sino de la funcionalidad y el código compacto, entonces tienes buenas noticias. Puede cargar archivos al servidor sin recargar la página, no solo usando AJAX y todo tipo de complementos de jQuery. Además, esto se puede implementar usando JavaScript simple, iframes y php (siempre es necesario). El hecho es que con AJAX es imposible implementar la carga de archivos. XmlHttpRequest no es capaz de descargar archivos. Aunque esto se puede evitar. Utilizando tecnología de secuencias de comandos remotas. Específicamente usando IFRAME. Lo interesante es que crearemos un formulario como con la carga de un archivo normal, solo que en el formulario especificaremos target="rFrame" , nos referiremos a un iframe oculto, que se recargará, pero no se mostrará visualmente. Después del reinicio, se devolverá una llamada a la función JS desde el lado del servidor PHP de la aplicación, lo que completará la descarga del archivo.

Este cargador es sencillo, consta de dos archivos y pesa aproximadamente 1 KB. Vaya al grano. Crea tu archivo HTML y pon el código allí:

función onResponse(d) ( eval("var obj = " + d + ";"); alert("Archivo " + obj.filename + (obj.success ? " " : " NOT ") + "cargado."); )

Aquí vemos casi los mismos componentes que cuando simplemente cargamos archivos al servidor, solo que: target=" rFrame" - del que ya hablamos anteriormente; Función onResponse: recibe el objeto JSON que enviamos desde el lado del servidor. Además, no olvide especificar multipart/form-data, sin el cual el formulario no cargará archivos. A continuación, veamos el código del servidor en el archivo handler.php:

El lado del servidor de la aplicación es similar al primer ejemplo de este artículo, con la excepción de la salida del código javascript, que se ejecutará después de recargar el iframe y nos informará sobre el resultado de cargar el archivo.

Muy simple y guión interesante. Por supuesto que puedes mejorarlo.

Probablemente muchos se hayan encontrado con la pregunta "¿Cómo cargar un archivo al servidor usando JS y JQuery?".
Y probablemente no todos pudieron hacer esto. De hecho, no todo es tan difícil como parece.
En esta lección describiré el proceso de subir un archivo a un servidor (hosting).
La tecnología Ajax se utiliza para intercambiar datos entre el navegador y el servidor web.
Versión de JQuery utilizada en la receta: 2.2.2.

Creamos marcado primitivo a partir de las etiquetas html, head y body.
En la etiqueta head debes incluir la ruta a la biblioteca jquery.
En el ejemplo estoy usando jquery del servidor de Google.

En la etiqueta del cuerpo creamos un formulario que consta de una etiqueta de entrada y un botón.
Usando input type="file" seleccionas un archivo para cargar.
La etiqueta del botón es necesaria para ejecutar el código js para transferir el archivo.

Configuramos el formulario name="uploader", enctype="multipart/form-data", método="POST".
Nombre del formulario: nombre="cargador"
Método de codificación de datos del formulario: enctype="multipart/form-data"
Método de transferencia de datos: método="POST"

Enviar este archivo: Subir

Todo el código de marcado html y js:
Enviar este archivo: Subir

Pasemos al código del script java.
Para transferir un archivo, debe transferir el formulario completo:
$("formulario").enviar(función(e) (

Leemos los datos del formulario en una variable:
var formData = nuevo FormData($(esto));

A continuación, utilizamos la tecnología ajax para transferir datos al servidor web.
Si la transferencia del archivo se realiza correctamente, se mostrará un mensaje en una ventana emergente.
Si se produce algún error o falta el archivo se mostrará un mensaje con el texto del problema surgido.
$.ajax(( url: "archivo.php", tipo: "POST", datos: formData, async: false, éxito: función (msg) ( alerta (msg); ), error: función (msg) ( alerta ( "¡Error!"); caché: falso, tipo de contenido: falso, datos de proceso: falso));

Todo el código está en script java usando jquery:

Ahora todo lo que queda es el código del lado del servidor para recibir datos del formulario usando el método Solicitud de publicación.

Obtenemos el directorio raíz del sitio y asignamos una carpeta para descargar archivos:
$uploaddir = $_SERVER["DOCUMENT_ROOT"].DIRECTORY_SEPARATOR."uploads".DIRECTORY_SEPARATOR;

Leyendo el archivo descargado:
$subirarchivo = $subirdir . nombre base($_FILES["archivo de usuario"]["nombre"]);

Comprobamos si el archivo está cargado.
De acuerdo con los datos entrantes, asignamos un mensaje adjunto.
Si el archivo no está cargado, cárguelo en el directorio especificado en $uploadfile:
if (move_uploaded_file($_FILES["userfile"]["tmp_name"], $uploadfile)) ( $out = "El archivo es válido y se cargó correctamente.\n"; ) else ( $out = "Posible ataque de carga de archivos !\n"; )

Cuando se realizan las acciones especificadas, se devuelve una respuesta.

Todo el código en php:

Todo el código html incluido js:

Envíe este archivo: Cargue $("form").submit(function(e) ( var formData = new FormData($(this)); $.ajax(( url: "file.php", escriba: "POST", datos: formData, async: false, éxito: function (msg) ( alert(msg); ), error: function(msg) ( alert("Error!"); ), cache: false, contentType: false, ProcessData: false )); e.preventDefault();

Descargar el archivo de código fuente:

Hoy en día, los sitios web son cada vez más interactivos. Esto se aplica no sólo servicios especializados, pero también internet regular tiendas, blogs y pequeños sitios web. La característica principal es JavaScript asincrónico y XML se abrevia como AJAX. Esta tecnología permite que el navegador se comunique con el servidor web en segundo plano y al actualizar datos, la página web no se recarga por completo. En otras palabras, podemos realizar solicitudes y recibir respuestas del servidor sin recargar la página en el navegador.

Dado que la mayoría lenguaje popular para desarrollar aplicaciones web es PHP, entonces hoy usaremos una combinación de AJAX y PHP. El ejemplo será bueno para comprender los principios básicos del trabajo con AJAX y PHP.

De hecho, no debería haber dificultades especiales, el algoritmo de acciones es el siguiente:

  • Seleccionar imagen
  • Haga clic en el botón "Enviar"
  • Interceptar llamada de formulario usando JavaScript (jQuery)
  • Pasar contenido a un controlador de script PHP especial
  • Resultado de la ejecución de devolución
  • Procesar el resultado usando JavaScript (jQuery)
  • Mostrar información de descarga al usuario.
Brevemente sobre jQuery y AJAX

Me desviaré un poco del tema y explicaré qué es jQuery. jQuery es una biblioteca especial de JavaScript que ayuda a simplificar varias veces el desarrollo de aplicaciones web, además esta biblioteca proporciona una API para trabajar con AJAX. En palabras simples, escribiremos menos código que si lo hiciéramos en JS puro.

Ajax le permite intercambiar datos con el servidor web y actualizar su contenido sin recargar la página web.

Me inclino a pensar que si existe una herramienta que permite acelerar el desarrollo sin consecuencias, ¿por qué no utilizarla? Pero tampoco estaría de más saber JS puro (aunque mi nivel personal de dominio de JS es igual al nivel de copiar y pegar ejemplos de stackoverflow :)).

Veremos uno de los problemas que una vez tuve que resolver: cargar una imagen en un sitio con una vista previa. Si ha cambiado su avatar en VKontakte, comprende sobre lo que estoy escribiendo.

necesitamos 3 archivo sencillo, Este:

  • página de formulario
  • controlador php
  • archivo js
index.html Carga Ajax Carga de imagen Archivo de imagen:

Regular pagina html con forma. Preste atención a enctype="multipart/form-data" , esto es necesario para transferir archivos; el parámetro indica el método de codificación de datos. Si está transfiriendo archivos, el valor siempre debe ser multipart/form-data.

handler.php // Comprobar si la matriz de archivos y la matriz con los datos transferidos están instaladas if(isset($_FILES) && isset($_FILES["image"])) ( //Guardar la matriz transferida en la variable $ image = $_FILES["image "] // Verifica el tamaño del archivo y si lo excede. tamaño dado// completa la ejecución del script y muestra un error if ($image["size"] > 200000) ( die("error"); ) // Obtiene el formato de la imagen $imageFormat = explode(".", $image["name "] ); $formatoimagen = $formatoimagen;// Genera un nuevo nombre para la imagen. Puedes guardar con el antiguo // pero no se recomienda $imageFullName = "./images/" . hash("crc32",tiempo()) . "." . $formatoimagen;

// Guarda el tipo de imagen en una variable $imageType = $image["type"];

// Controlar

Lo más interesante sucede en este guión. Usando la función readImage(), leeremos el archivo desde el campo del formulario y lo pasaremos al bloque para avance. Se crea un objeto FileReader. Permite que una aplicación web lea el contenido de un archivo en la computadora del usuario. El evento .onload se activará cuando se lea el contenido; usando este evento mostraremos la imagen en el bloque de vista previa.
Y finalmente, el método .readAsDataURL() inicia el proceso de lectura del archivo, al finalizar la lectura se ejecutará el evento .onload y la imagen aparecerá en su pantalla.

La función printMessage está diseñada para mostrar información sobre un intento exitoso o fallido de descargar un archivo. No lo miramos en detalle; no representa nada especial.

Interceptación del formulario y su procesamiento. Cuando hace clic en el botón "Enviar", el evento será interceptado por el script y, al utilizar la función .preventDefault(), el formulario no enviará datos a index.html. .preventDefault() se utiliza para evitar que se genere cualquier evento.

Necesitamos el objeto FormData para crear una solicitud POST en nuestro script; es mucho más fácil que escribir cada elemento del formulario en una línea. Creamos un objeto, lo llenamos con datos y lo enviamos a nuestro ajax.

Bueno, en realidad yo mismo solicitud AJAX. Dado que utilizamos la biblioteca jQuery, crear y ejecutar dicha consulta no le causará ningún problema.

En realidad, terminemos aquí. La imagen se carga, la página no se recarga, todos están contentos. Si tienes dudas o sugerencias, escribe comentarios.

Que tengas un buen día y buena suerte :)




Arriba