Introducción al cargador web
Webuploader es un componente de carga de archivos moderno simple principalmente HTML5 y complementado por Flash desarrollado por el equipo de Baidu Webfe (FEX). En los navegadores modernos, podemos dar un juego completo a las ventajas de HTML5, sin abandonar los principales navegadores de IE, y continuar usando el tiempo de ejecución de flash original, y son compatibles con IE6+, iOS 6+, Android 4+. Los dos conjuntos de tiempo de ejecución, los usuarios pueden seleccionar el mismo método de llamada a voluntad. El uso de la carga concurrente de fragmentación de archivos grandes mejora enormemente la eficiencia de la carga de archivos.
Aquí utilizamos un ejemplo del sitio web oficial para cargar nuestro avatar personal.
Nuestro enfoque está en cómo cargar archivos utilizando WebUpploader en el proyecto Spring Boot, por lo que podemos implementar directamente una función simple de referencia solamente.
Aquí hay un ejemplo descargado del sitio web oficial: función de carga de imágenes con recorte.
Utilizamos ejemplos para remodelar las cargas de avatar en el proyecto.
El efecto se ve así:
Primero, remodelemos nuestro código de muestra Webupplroader.
Los siguientes son algunos de los códigos de mi proyecto:
(function (fábrica) {if (! Window.jquery) {se requiere alert ('jQuery.')} jQuery (function () {factory.call (null, jQuery);});}) (function ($) {// ----------------------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------- Error ('WebPlOADER no es compatible con el navegador que está utilizando.'); _.Deferred (); }); 'RESISE', Blob.Size, Size); Image.loadFromBlob (File.Source); Modo de cultivo. $ .trim ($ ("#base_url"). val ()) + '/static/webuploader/uploader.swf', filenumlimit: 1, // Solo se permiten archivos de imagen: {title: 'Images', // extensions: 'gif, jpg, jpeg, bmp, png', // mimetypes: '' extensions/*'extensions/*' extensions/*'extensions/*' extensions/*'extensions/*' extensions/*'Extensions/*' Extensions/*'Extensions/*' Extensions/*'Extensions: 'jpg, jpeg, png', // resolver webuploader Chrome Haga clic en el cuadro de selección de archivos de carga para retrasar unos pocos segundos antes de que la respuesta sea lenta mimetypes: 'image/jpg, imagen/jpeg, imagen/png // modifique esta línea} // Formos: {"Autorización": localStorage.token}, // Los parámetros adicionales son // grito: true, // shash // chunksize: 10 * 1024 * 1024, // shash size especifica // hilos: 1, // número de hilos // discapacitar }); / *** Verificar el formato de archivo y el tamaño de archivo* / uploader.on ("error", function (type) {if (type == "Q_TYPE_DENED") {showInfo ("por favor, cargue jpg, jepg, png, archivos de formato");}}); 'uploadSuccess', function (archivo) {showInfo ("uploadSuccess"); file._info.width; --------------------------------------------------------------------------------------------------------------------------------------------------------------- var btn = $ ('. upload-btn'); Var isbase64supported, devolución de llamada; $ image.cropper ({Aspectratio: 4/4, vista previa: ".Img-Preview", Done: function (data) {// console.log (data);}}); función srcrap (src, cb) {// Necesitamos verificar esto por primera vez. if (typeof isBase64Supported === 'Undefined') {(function () {var data = new image (); var support = true; data.onload = data.onerror = function () {if (this.width! = 1 || this.height! = 1) {soport = false;}} data.src = src; isbase64s; }) (); } if (isbase64supported) {cb (src); } else {// de lo contrario necesitamos soporte del servidor. // Convertir base64 a un archivo. // $ .AJAX ('', {// método: 'post', // data: src, // dataType: 'json' //}). done (function (respuesta) {// if (respuesta.result) {// cb (respuesta.result); //} else {// alerta ("error previo"); //}/}); }} btn.on ('hacer clic', function () {callback && callback ($ image.cropper ("getData")); return false;}); return {setsource: function (src) {// manejar base64 no es compatible. // Generalmente ocurre en IE6-II8 SRCWRAP (src, function (src) {$ image.cropper ("setImgSrc", src);}); Container.remoVeclass ('Webuploader-element-invisible'); devolver esto; }, getImagesize: function () {var img = $ image.get (0); return {width: img.naturalwidth, altura: img.naturalHeight}}, setCallback: function (cb) {callback = cb; devolver esto; }, deshabilitar: function () {$ image.cropper ("disable"); devolver esto; }, enable: function () {$ image.cropper ("enable"); devolver esto; }}}}}) (); // ----------------------------------------------------------------------- ----------------------------------------------------------------------- Cargador.crop (datos); Por carga.upload (); }); }); // ------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------También hay algunos códigos para la página:
Aquí está el código para la parte del controlador:
@RequestMapping (value = "/student/studentImgFileUpload", método = requestMethod.post) @ResponseBody String studentImgFileUpload (@RequestParam multipartfile archivo, htttpservletRequest request) {logger.info ("student avatar a carga ..."). logger.info ("Nombre de archivo de carga:" + originalFileName) string string realPath = request.getServletContext (). //Merge files RandomAccessFile raFile = null BufferedInputStream inputStream = null try{ File dirFile = new File(realPath, uploadFileName) //Open the target file in a read-write manner raFile = new RandomAccessFile(dirFile, "rw") raFile.seek(raFile.length()) inputStream = new BufferedInputStream (file.getInputStream ()) byte [] buf = new byte [1024] int longitud = 0 while ((longitud = inputStream.Read (buf))! = -1) {rafile.write (buf, 0, longitud)}} capt (excepción) {flag = false logger.info ("Error de carga:" E. E.getMessage ()) IoException (e.getMessage ())} Finalmente {try {if (inputStream! = Null) {inputStream.Close ()} if (rafile! = Null) {rafile.close ()}} capt (excepción e) {flag = false logger.info ("cargue:" + e. e.getMessage ()) shish showexception (shish (g. }Esto simplemente implementa la función de usar WebUpploader para la carga de archivos en el proyecto Spring Boot.
Resumir
Lo anterior es la bota de primavera presentada por el editor. Utiliza WebUpploader para cargar archivos. Espero que te sea útil. Si tiene alguna pregunta, déjame un mensaje y el editor le responderá a tiempo. ¡Muchas gracias por su apoyo al sitio web de Wulin.com!