SpringBoot 사진 업로드 예시
5552 단어 SpringBoot업로드그림.
1.한 장의 사진 업로드
1.1 전단 용지 제출
전단 코드:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form method="post" action="/uploads" enctype="multipart/form-data">
<input type="file" name="files" multiple>
<input type="submit" value=" ">
</form>
</body>
</html>
백 엔 드 코드;
SimpleDateFormat formatter = new SimpleDateFormat("/yyyy/MM/dd/");
@RequestMapping("/upload")
public String fileUpload(MultipartFile file, HttpServletRequest request){
String time = formatter.format(new Date());
//
String realPath = request.getServletContext().getRealPath("/img") + time;
File folder = new File(realPath);
if(!folder.exists())
folder.mkdirs();
// ( )
String oldName = file.getOriginalFilename();
String newName = UUID.randomUUID() + oldName.substring(oldName.lastIndexOf("."));
try {
//
file.transferTo(new File(folder, newName));
// URL, , ,
String returnUrl = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + "/img" + time + newName;
return returnUrl;
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
1.2 전단 은 ajax 로 제출전단 코드 는 위의 것 과 약간 다 르 고 배경 코드 는 같 습 니 다.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<input type="file" id="file">
<input type="submit" value=" " onclick="uploadFile()">
<h1 id="result"></h1>
</body>
<script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js">
</script>
<script>
function uploadFile() {
var file = $("#file")[0].files[0];
var formData = new FormData();
formData.append("file", file);
$.ajax({
type:"post",
url:"/upload",
processData:false,
contentType:false,
data:formData,
success:function (msg) {
$("#result").html(msg);
}
})
}
</script>
</html>
2.여러 개의 사진 업로드전단 코드:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form method="post" action="/uploads" enctype="multipart/form-data">
<input type="file" name="files" multiple>
<input type="submit" value=" ">
</form>
</body>
</html>
배경 코드:
@RequestMapping("/uploads")
public String fileUploads(MultipartFile[]files, HttpServletRequest request){
String time = formatter.format(new Date());
//
String realPath = request.getServletContext().getRealPath("/img") + time;
File folder = new File(realPath);
if(!folder.exists())
folder.mkdirs();
for (MultipartFile file : files) {
// ( )
String oldName = file.getOriginalFilename();
String newName = UUID.randomUUID() + oldName.substring(oldName.lastIndexOf("."));
try {
//
file.transferTo(new File(folder, newName));
// URL, , ,
String returnUrl = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + "/img" + time + newName;
System.out.println(returnUrl);
} catch (IOException e) {
e.printStackTrace();
}
}
return null;
}
3.문제 기록배경 코드 중 한 줄 은 주의해 야 합 니 다.
String realPath = request.getServletContext().getRealPath("/img") + time;
realPath 가 무엇 을 말 하 는 지 이해 해 야 합 니 다.테스트 를 시 작 했 을 때 그림 이 업로드 되 었 을 때 배경 아이디어 에서 해당 하 는 그림 을 찾 을 수 없 었 습 니 다.그리고 돌아 오 는 realPath 에 따라 CD 사용자 디 렉 터 리 의 한 폴 더 에서 이 그림(user/AppData/...)을 찾 았 습 니 다.shift+shift 전역 검색 getCommonDocumentRoot 이 방법 은 눌 러 서 정적 배열 이 있 습 니 다:COMMONDOC_ROOTS
private static final String[] COMMON_DOC_ROOTS = new String[]{"src/main/webapp", "public", "static"};
기본 값 은 웹 앱 이나 루트 디 렉 터 리 에 있 는 Public,static 폴 더(src 와 병렬)를 말 합 니 다.그러나 이 디 렉 터 리 들 이 없어 서 Spring 은 프로젝트 디 렉 터 리 이외 의 위치 로 정 해 졌 다.그래서 나 는 루트 디 렉 터 리 에 static 폴 더 를 새로 만 들 고 다시 올 렸 는데 과연 효과 가 있 었 다.
이상 은 SpringBoot 가 사진 을 올 리 는 예시 의 상세 한 내용 입 니 다.SpringBoot 가 사진 을 올 리 는 것 에 관 한 자 료 는 저희 의 다른 관련 글 을 주목 해 주 십시오!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
【Java・SpringBoot・Thymeleaf】 에러 메세지를 구현(SpringBoot 어플리케이션 실천편 3)로그인하여 사용자 목록을 표시하는 응용 프로그램을 만들고, Spring에서의 개발에 대해 공부하겠습니다 🌟 마지막 데이터 바인딩에 계속 바인딩 실패 시 오류 메시지를 구현합니다. 마지막 기사🌟 src/main/res...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.