프로젝트 진행하면서 오유에서 도움을많이받는 취준생입니다.
다름이아니라.
위싸이트의 도움으로 이미지업로드기능을 구현을 하였는데. 1가지 문제가발생해서 질문드려보네요..
1. 현재 컴퓨터상의 절대경로를 통해서 그안에 이미지가 들어가는건 확인이 되었습니다.
<value>C:\workspace\p\src\main\webapp\resources\userImages
userimages폴더에 이미지가 들어가는것까지 확인이되었습니다.
2. 제가 구현하고자하는것은 서버에 이미지경로가 들어가게끔 코딩을 할려고합니다.
<!-- Configure the file upload directory-->
<bean id="uploadDirResource" class="org.springframework.core.io.FileSystemResource">
<constructor-arg>
<value>C:/upload/</value>
</constructor-arg>
</bean>
이부분의 value에서 경로를 지정을 할 수 있는데. 서버에 이미지를 저장할려고하는데. 어떻게 해야되는지 궁금하네요.
아는분한테 설명은들엇는데. 도무지 이해가되지가않네요.
현재 svn을 이용해서 자바 프로젝트 진행중이고, mysql을 사용하고있습니다.
3. 서버에 이미지 저장 -> DB에서 이미지 경로를 호출해서 출력하면 그 이미지가뜬다
지금 제가 구상하는 것입니다.
4.. 현재까지 소스입니다.
@Controller
@RequestMapping(value = "uploadFile.do")
public class UploadController {
@Autowired
MyRoomService myRoomService;
@Autowired
private FileSystemResource fsResource; // 파일다운로드
@RequestMapping(method = RequestMethod.GET)
public String getUploadForm(Model model) {
model.addAttribute(new UploadItem()); // name ,fileData 를 끌고 오겟다.
return "myRoom/uploadCheck";
}
@RequestMapping(method = RequestMethod.POST)
public String create(UploadItem uploadItem, BindingResult result,
HttpServletRequest request) {
Member member;
HttpSession session = request.getSession();
member = (Member) session.getAttribute("member");
if (result.hasErrors()) // 에러체크
{
for (ObjectError error : result.getAllErrors()) {
System.err.println("Error: " + error.getCode() + " - "
+ error.getDefaultMessage());
}
return "myRoom/uploadCheck";
}
if (!uploadItem.getFileData().isEmpty()) {
String filename = uploadItem.getFileData().getOriginalFilename(); // 파일의
// 실제명을
// 가지고온다.
String imgExt = filename.substring(filename.lastIndexOf(".") + 1,
filename.length());
System.out.println(filename);
System.out.println(imgExt);
// lastIndexof는끝에서부터 읽어들임
// imgExt = 파일명을 읽어들임
// upload 가능한 파일 타입 지정
if (imgExt.equalsIgnoreCase("JPG") || imgExt.equalsIgnoreCase("JPEG")
|| imgExt.equalsIgnoreCase("GIF") || imgExt.equalsIgnoreCase("PNG")) {
byte[] bytes = uploadItem.getFileData().getBytes();
System.out.println(bytes);
try {
File lOutFile = new File(fsResource.getPath() + "_" + filename);
System.out.println(lOutFile); // 이미지 경로
/* String lOutFile2 = lOutFile.toString().replace("\\", "/"); */
System.out.println(lOutFile);
FileOutputStream lFileOutputStream = new FileOutputStream(lOutFile);
System.out.println(lFileOutputStream); // 이미지 경로
member.setImgPath(lOutFile.toString());
lFileOutputStream.write(bytes);
lFileOutputStream.close();
} catch (IOException ie) {
// Exception 처리
ie.printStackTrace();
System.err.println("File writing error! ");
}
System.err.println("File upload success! ");
myRoomService.insertImage(member);
} else {
System.err.println("File type error! ");
}
}
// Some type of file processing...
System.err.println("-------------------------------------------");
System.err.println("Test upload: " + uploadItem.getName());
System.err.println("Test upload: "
+ uploadItem.getFileData().getOriginalFilename());
System.err.println("-------------------------------------------");
return "myRoom/uploadCheck";
}
}