Consejos amables
En el sistema de gestión de miembros de Boot Spring, es necesario involucrar el marco de Spring, el marco SpringMVC, el marco de hibernación y el motor de plantilla Thymeleaf. Por lo tanto, puedes aprender este conocimiento. Por supuesto, está bien usarlo directamente si comienza, pero puede ser un poco difícil si implica algunas excepciones y principios.
1. Parte front-end
En la parte front-end, addmember.html envía información del miembro a través del formulario del formulario, que incluye la función de carga de imágenes (la operación de carga de archivo está involucrada). El código en la parte del formulario es el siguiente:
<form de th: action = "@{/admin/addmember}" método = "post" enctype = "multipart/form-data" id = "addmember"> <div> <div> <span> seleccione el archivo avatar </span> <input id = "file" type = "file" name = "iconPath" múltiple = "" lugar shatholder = "select" aceptación "de la imagen/*" "ONCHANG <Viv> <!-<input type = "text" placeHolder = "cargar uno o más archivos">-> <img id = "myImg" src = "activos/iconpath/common.jpg"/> </div> <!-Avatar de archivo de archivo de archivo-> <script> ID de funciones (id) {regresar document.getEmementByid (id); } function changeToop () {var file = id ("archivo"); if (file.value === '' ') {// Establezca la id ID de imagen predeterminada ("myIMg"). src =' assets/iconpath/common.jpg '; } else {preimg ("archivo", "myimg"); }} // Obtenga la URL de la función de entrada [archivo] Función importante getFileUrl (fileID) {var url; var file = id (fileId); VAR Agent = Navigator.Useragent; if (agente.indexof ("msie")> = 1) {url = file.value; } else if (agente.indexof ("firefox")> 0) {url = window.url.createObjectUrl (file.files.item (0)); } else if (agente.indexof ("chrome")> 0) {url = window.url.createObjectUrl (file.files.item (0)); } URL de retorno; } // Función de vista previa después de leer la imagen preimg (fileID, imgid) {var imgpre = id (imgid); imgpre.src = getFileUrl (fileId); } </script> </div> ......... </form> Aquí hay una nota: debido a que implica la carga de archivos, se debe agregar enctype="multipart/form-data" a la forma, y el atributo de nombre en entrada corresponde al nombre del parámetro entrante del método de mapeo del controlador en el backend.
2. Implementación del código de back -end
En el backend, el marco SpringMVC puede procesar archivos y luego podemos recibir los archivos pasando parámetros.
2.1 El controlador maneja archivos entrantes
El código es el siguiente:
@PostMapping ("/addmember") public String addMember (miembro miembro, string gradeName, múltiple icono, map <string, objeto> modelo) {// procesar archivo cargado intent {if (icon == null) // primero determinar si el archivo cargado es nulo return "error"; if (icon.getOriginalFileName (). Equals ("")) // Si el nombre original del archivo cargado es una cadena vacía, se demuestra que la imagen predeterminada miembro.SeticOnpath ("/Assets/Icon/Common.jpg"); // Establezca como nuestro Pathelse de imagen predeterminado // Aquí proceso el archivo multiparte cargado al pasar la clase de herramienta de carga de archivo que escribí. El nombre del archivo se establece en String member.SeticOnpath (fileUploadUtil.upload (icon, "/assets/icon/", uuidrandomutil.get32Uuid ())); } catch (Exception e) {E.PrintStackTrace (); devolver "error"; } ..... return "addMembersuccess"; }2.2 La clase de herramientas Fileuploadutil guarda archivos
Después de que se pasa el archivo multipartil del controlador, debe convertirse aún más en el archivo y guardarlo en el disco, por lo que lo procesé por separado y entregué el archivo entrante del controlador a la clase de herramientas FileUploadutil para procesar. El código específico es el siguiente:
public class FileUploadUtil { /*** Cargar archivo* @param multipartfile multipartfile* @param prefixpath prefixpath, relativo a la ruta en la ruta completa, no hay necesidad de agregar " /" Al comienzo de la ruta* @param fileinter cargado fileNeMe* @return la ruta relativa final después de la carga + archivo de archivo* @throws es posible que sea posible que sea posible. IO Excepciones*/public static string upload (multipartfile multipartFile, string prefixpath, string fileName) lanza la excepción {// Obtener la ruta absoluta cargada String uploadPath = classUutils.getDefaultClassLoader (). GetResource (""). GetPath () + "/static" + prefixpath; Archivo archivo = nuevo archivo (uploadPath); if (! file.exists ()) if (file.mkdirs ()) system.out.println ("directorio creado con éxito"); // Obtenga el sufixname cargado = multipartfile.getOriginalFileName (). Substring (multipartFile.getOriginalFileName (). LastIndexOf (".")); // Crear un archivo finalizado de archivo = nuevo archivo (uploadPath+nombre de archivo+sufixname); multipartFile.transferto (archivo); return prefixpath+nombre de archivo+sufixname; }} ClassUtils en lo anterior es una clase de herramientas proporcionada por Spring, y llamando al método getDefaultClassLoader().getResource("").getPath() es obtener la ruta en el proyecto actual ClassPath.
Lo anterior es parte del contenido sobre la carga de archivos en este sistema. El código fuente de este sistema se carga a GitHub y se descarga el código fuente.
Resumir
Lo anterior es la función de carga de archivos del sistema de gestión de miembros de Boot Spring que le presenta el editor. 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!