Open bogus1226 opened 1 year ago
게시물올리기 기능 제이쿼리
$("#saveBtn").on("click", function(){
let userId = $(this).data("userid");
let content = $("#contentArea").val();
let file = $("#fileInput")[0];
let cafeId = $(this).data("cafeid");
if(content.trim() == "") {
$("#contentText").removeClass("d-none");
return;
}
content = content.replace("\n", "<br>");
var formData = new FormData();
formData.append("userId", userId);
formData.append("content", content);
formData.append("file", file.files[0]);
formData.append("cafeId", cafeId);
$.ajax({
type:"post"
, url:"/suda/cafe/post/create"
, data:formData
, enctype:"multipart/form-data"
, processData:false
, contentType:false
, success:function(data){
if(data.result == "success") {
location.href = "/suda/cafe/mainpage/view?cafeId=" + cafeId;
} else {
alert("글쓰기 실패");
}
}
, error:function(){
alert("글쓰기 에러");
}
});
});
우선 내가 지정한 폴더안에 파일이름을 겹치지 않게 저장하기위해 userId와 시간으로 계산하여 만들어진 폴더가 생성되고, 그안에 이미지가 저장이된다!
public static final String FILE_UPLOAD_PATH = "C:\\Users\\user\\Desktop\\programing\\bogudPlus\\upload\\sudaPostImages";
private static Logger logger = LoggerFactory.getLogger(FileManagerService.class);
public static String saveFile(int userId, MultipartFile file) {
if(file == null) {
return null;
}
String directoryName = "/" + userId + "_" + System.currentTimeMillis() + "/";
String directoryPath = FILE_UPLOAD_PATH + directoryName;
File directory = new File(directoryPath);
if(!directory.mkdir()) {
logger.error("saveFile : 디렉토리 생성 실패 " + directoryPath);
return null;
}
try {
byte[] bytes = file.getBytes();
String filePath = directoryPath + file.getOriginalFilename();
Path path = Paths.get(filePath);
Files.write(path, bytes);
} catch (IOException e) {
logger.error("saveFile : 파일 저장 실패 " + directoryPath);
e.printStackTrace();
return null;
}
return "/sudaPostImages" + directoryName + file.getOriginalFilename();
}
이미지 접근을위한 코드
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/sudaPostImages/**")
.addResourceLocations("file:///" + FileManagerService.FILE_UPLOAD_PATH + "/");
}
[염근효]
- 게시물 올리기 할때 옆에 미리보기 화면구성 완료!
- 미리보기에서 이미지 기능 구현 완료!
- 이미지 삭제 기능 구현완료!
- 텍스트에따라 보이는 미리보기에서 한글로는 페이지가 넘어가는데 영어로는 넘아기지않는 버그발견!!
- 다음에 해야될것: 텍스트 버그 해결하기!