친절한 팁
Spring Boot 회원 관리 시스템에서는 Spring Framework, SpringMVC 프레임 워크, 최대 절전 모드 프레임 워크 및 Thymeleaf 템플릿 엔진을 포함해야합니다. 따라서이 지식을 배울 수 있습니다. 물론 시작하면 직접 사용해도 괜찮지 만 예외와 원칙이 포함되어 있으면 약간 어려울 수 있습니다.
1. 프론트 엔드 부분
프론트 엔드 파트에서 AddMember.html은 이미지 업로드 기능 (파일 업로드 작업이 관련됨)을 포함하여 양식 양식을 통해 멤버 정보를 제출합니다. 양식 부분의 코드는 다음과 같습니다.
<form th : action = "@{/admin/addmember}"메서드 = "post"encType = "multipart/form-data"id = "addmember"> <div> <div> <span> avatar 파일 선택 </span> <input id = "file" "file"name = "iconpath"multiple = ""placeHolder = "incept ="indime/*"onchange ="changeote " <div> <!-<input type = "text"placeholder = "하나 이상의 파일을 업로드">-> <img id = "myimg"src = "assets/iconpath/common.jpg"/> </div> <!-Avatar 파일 업로드 미리보기-> <cript> function id (id) {return. } function changeToop () {var file = id ( "file"); if (file.value === '') {// 기본 이미지 ID ( "myimg")를 설정합니다. } else {preimg ( "file", "myimg"); }} // 입력의 URL을 가져옵니다 [파일] 이미지 중요한 함수 getFileUrl (fileId) {var url; var file = id (fileId); var agent = navigator.useragent; if (agent.indexof ( "msie")> = 1) {url = file.value; } else if (agent.indexof ( "firefox")> 0) {url = window.url.createobjecturl (file.files.item (0)); } else if (agent.indexof ( "chrome")> 0) {url = window.url.createobjecturl (file.files.item (0)); } 반환 URL; } // preimg (fileId, imgid) {var imgpre = id (imgid); imgpre.src = getfileurl (fileId); } </script> </div> ......... </form> 여기에는 참고 사항이 있습니다. 파일 업로드가 포함되므로 enctype="multipart/form-data" 형성에 추가해야하며 입력의 이름 속성은 백엔드에서 컨트롤러 매핑 메소드의 들어오는 매개 변수 이름에 해당합니다.
2. 백엔드 코드 구현
백엔드에서 SpringMVC 프레임 워크는 파일을 처리 한 다음 매개 변수를 전달하여 파일을 수신 할 수 있습니다.
2.1 컨트롤러는 들어오는 파일을 처리합니다
코드는 다음과 같습니다.
@PostMapping ( "/addMember") public String addMember (멤버 멤버, 문자열 gradeName, multipartFile Icon, Map <String, Object> Model) {// 업로드 된 파일 처리 {if (icon == null) // 업로드 된 파일이 널 리턴 "오류"인지 결정합니다. if (icon.getoriginalfilename (). equals ( "")) // 업로드 된 파일의 원래 이름이 빈 문자열 인 경우 기본 이미지 멤버 .seticonpath ( "/assets/icon/common.jpg"); // 기본 이미지로 설정하십시오 PathElse // 여기서는 파일 업로드 도구 클래스를 전달하여 업로드 된 MultipartFile을 처리합니다. 파일 이름은 문자열 멤버로 설정됩니다 .SeticOnpath (fileUploadUtil.upload (아이콘, "/assets/icon/", uuidrandomutil.get32uuid ())); } catch (예외 e) {e.printstacktrace (); "오류"를 반환합니다. } ..... return "addMembersUccess"; }2.2 FileUploadUtil 도구 클래스는 파일을 저장합니다
컨트롤러의 MultipartFile 파일이 전달되면 파일로 더 전환하여 디스크로 저장해야하므로 개별적으로 처리하고 컨트롤러의 들어오는 파일을 파일 누화 도구 클래스에 처리하여 처리했습니다. 특정 코드는 다음과 같습니다.
public class fileUploadUtil { /*** 업로드 파일* @param multipartfile multipartfile* @param prefixpath prefixpath, 전체 프로젝트의 경로에 비해 경로의 시작 부분에서 " /"를 추가 할 필요가 없습니다. 예외*/public static string upload (multipartfile multipartfile, String prefixpath, String filename) 예외 던지기 예외 {// 절대 경로 가져 오기 시작 string uploadpath = classutils.getDefaultClassLoader (). getResource ( "). getPath () +"/static " + prefixPath; 파일 = 새 파일 (uploadpath); if (! file.exists ()) if (file.mkdirs ()) system.out.println ( "성공적으로 생성 된 디렉토리"); // 업로드 된 iffixName = multipartFile.getoriginalFilename (). substring (multipartfile.getoriginalFilename (). lastIndexof ( ".")); // 최종 파일 생성 파일 = 새 파일 (uploadPath+filename+windixName); multipartfile.transferto (파일); PrefixPath+filename+접미사 이름을 반환합니다. }} 위의 Classutils는 Spring에서 제공하는 도구 클래스이며 방법을 호출하는 getDefaultClassLoader().getResource("").getPath() 현재 프로젝트 클래스 경로 아래의 경로를 가져 오는 것입니다.
위는이 시스템의 파일 업로드에 대한 컨텐츠의 일부입니다. 이 시스템의 소스 코드는 GitHub 및 다운로드 된 소스 코드에 업로드됩니다.
요약
위는 편집자가 소개 한 Spring Boot 회원 관리 시스템의 파일 업로드 기능입니다. 나는 그것이 당신에게 도움이되기를 바랍니다. 궁금한 점이 있으면 메시지를 남겨 주시면 편집자가 제 시간에 답장을 드리겠습니다. Wulin.com 웹 사이트를 지원해 주셔서 대단히 감사합니다!