자바 이미지 업로드 및 인 스 턴 스 코드 구현
많은 사이트 에서 프로필 사진 을 올 릴 수 있 습 니 다.자신 이 좋아 하 는 사진 을 선택 하여 프로필 사진 을 만 들 수 있 습 니 다.현지에서 올 릴 수 있 습 니 다.다음 에 로그 인 할 때 이미 올 린 프로필 사진 을 직접 표시 할 수 있 습 니 다.그러면 이것 은 어떻게 이 루어 집 니까?다음은 더 이상 할 말 이 없 으 니 상세 한 소 개 를 살 펴 봅 시다.
1.주의사항:
1.이 프로젝트 는 주로 springboot+thymeleaf 프레임 워 크 를 사용 합 니 다.
2.코드 는 ajax 에 그림 업로드 완료(ajax 를 사용 하지 않 으 면 해당 form 폼 설정 만 변경 하면 됩 니 다)
2.효과 실현:
1,페이지 효과:
2.폴 더 경로 에 해당 하 는 그림 이 많아 집 니 다.
3.코드 구현:
1,html 텍스트 에서(thymeleaf 프레임 워 크 사용)로 편집:
<!-- -->
<input type="file" class="form-control" id="file" name="file" th:onchange="javascript:preview(this)">
<!-- -->
<div id="preview">
<!-- . -->
<img style="width: 100px; height: 100px;display:none" id="imgHidden" />
</div>
<!-- ... pageIndex pageSize , . -->
<button type="submit" th:onclick="javascript:submitForm([[${pageIndex}]],[[${pageSize}]])" class="btn btn-primary"> </button>
2,js 코드 편집:두 가지 상황:1.file 에 값 이 있 을 때 제출 합 니 다.2,file 파일 에 값 이 없 을 때 제출
function submitForm(pageIndex, pageSize) {
var formData = new FormData(); //
formData.append("id", $("#id").val());
var zswb = $("#file").val(); // file ,
if (zswb == '' || zswb.length < 1) { // file
$.ajax({
url : '/editMovieWithoutFile',
type : 'post',
data : formData,
processData : false,
contentType : false,
success : function(value) {
var result = JSON.parse(value);
if (result == 'true') {
window.location.href = "/index?pageIndex=" + pageIndex+ "&pageSize=" + pageSize;
} else {
Lobibox.alert('error', {msg : " !!!"});
}
}
});
} else { // file
formData.append("file", $("#file")[0].files[0]);
$.ajax({
url : '/editMovieInfo',
type : 'post',
data : formData,
processData : false,
contentType : false,
success : function(value) {
var result = JSON.parse(value);
if (result == 'true') {
window.location.href = "/index?pageIndex=" + pageIndex+ "&pageSize=" + pageSize;
} else {
Lobibox.alert('error', {msg : " !!!"});
}
}
});
}
}
// :
function preview(file) {
$("#imgHidden").css("display", "none");
var prevDiv = document.getElementById('preview');
if (file.files && file.files[0]) {
var reader = new FileReader();
reader.onload = function(evt) {
prevDiv.innerHTML = '<img style="width: 100px;height: 100px;" src="' + evt.target.result + '" />';
}
reader.readAsDataURL(file.files[0]);
} else {
prevDiv.innerHTML = '<div class="img" style="width: 100px;height:100px;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale,src=\'' +
file.value + '\'"></div>';
}
}
3,application.properties 의 설정 업로드 제한
#
spring.servlet.multipart.enabled=true
spring.servlet.multipart.file-size-threshold=0
#
spring.servlet.multipart.maxFileSize=100MB
#
spring.servlet.multipart.maxRequestSize=100MB
4.contrller(여기 서 file 이 없 는 상황 을 보 여 주지 않 습 니 다.매개 변수 만 받 아들 이 는 것 이 간단 하기 때 문 입 니 다):
/**
* file
* @param movieDto
* @param file file
*/
@RequestMapping("/editMovieInfo")
@ResponseBody
public String editMovieInfo(@RequestParam("id")final int id,@RequestParam("file")MultipartFile file) {
int result = btShareService.editMovieInfo(id,file,uploadDir);
if (result > -1) {
return JSON.toJSONString("true");
} else {
return JSON.toJSONString("false");
}
}
5,service 층 처리:
@Transactional
@Override
public int editMovieInfo(int id, MultipartFile file,String uploadDir) {
try {
//
String imgUrl = null;
//
String filename = upload(file, uploadDir, file.getOriginalFilename());
if (!EmptyUtil.isEmpty(filename)) {
imgUrl = new File(uploadDir).getName() + "/" + filename;
}
MovieInfo movie = movieInfoService.selectMovieInfoByDcpId(Integer.valueOf(movieDto.getId()));
movie .setImgUrl(imgUrl)
movieInfoService.updateMovieInfoByDcpId(movieInfo);
return 0;
} catch (Exception e) {
e.printStackTrace();
return -1;
}
}
사진 업로드 방법
public String upload(MultipartFile file, String path, String fileName) throws Exception {
//
String realPath = path + "/" + UUID.randomUUID().toString().replace("-", "")+fileName.substring(fileName.lastIndexOf("."));
File dest = new File(realPath);
//
if (!dest.getParentFile().exists()) {
dest.getParentFile().mkdir();
}
//
file.transferTo(dest);
return dest.getName();
}
6.Dao 층 의 조작 과 데이터 베이스 수정 은 여기 서 바로 생략 합 니 다.총결산
이상 은 이 글 의 전체 내용 입 니 다.본 논문 의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 참고 학습 가치 가 있 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 댓 글 을 남 겨 주 셔 서 저희 에 대한 지지 에 감 사 드 립 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.