안드로이드&IOS 앱 개발자 양성

안드로이드&IOS 앱 개발자 양성(67일차)

HRuler 2020. 7. 10. 19:06
더보기


** Spring에서의 파라미터 처리
1. HttpServletRequest 객체의 getParameter 메소드를 호출
2. Controller의 요청 처리 메소드에 @RequestParam("파라미터 이름") 자료형 변수명을 매개변수로 만들어서 처리
3. Command 클래스를 생성하고 Command 객체를 요청 처리 메소드의 매개변수로 이용해서 처리하는 것이 가능

** File Upload

** Spring에서의 파라미터 처리
1. HttpServletRequest 객체의 getParameter 메소드를 호출
2. Controller의 요청 처리 메소드에 @RequestParam("파라미터 이름") 자료형 변수명을 매개변수로 만들어서 처리
3. Command 클래스를 생성하고 Command 객체를 요청 처리 메소드의 매개변수로 이용해서 처리하는 것이 가능

** File Upload

- File이 있는 Form은 method가 반드시 post 방식이어야 하고 enctype을 multipart/form-data로 설정해 주어야 한다.

- pom.xml 파일에 의존성을 설정

  commons-fileupload의 의존성을 설정

- Spring에서는 설정 파일에 MultipartResolver 클래스의 bean을 설정 파일에 등록해주어야 한다.

  maxUploadSize 프로퍼티 : 업로드되는 파일의 최대 크기를 설정, 기본값은 -1(무제한)

  maxInMemorySize 프로퍼티 : 임시 파일을 생성하기 전에 메모리에 보관할 수 있는 최대 크기

  defaultEncoding 프로퍼티 : 인코딩 설정으로 기본값은 ISO-8859-1인데 인코딩 필터 설정이 되어 있으면 인코딩 필터 설정을 따르게 된다.

- Spring에서는 파일을 업로드할 때 HttpServletRequest 대신에 MultipartHttpServletRequest를 이용해야 하는데 이 클래스의 getFile("파라미터 이름") 메소드를 호출하면 파일을 MultiPartFile이라는 자료형으로 리턴한다.

  @RequestParam이나 Command 객체를 이용할 때는 변수의 자료형을 MultiupartFile로 설정해야 한다.

- MultipartFile 클래스

  String getName() : 파라미터 이름을 리턴한다.

  String getOriginalFileName() : 파일의 이름을 리턴

  boolean isEmpty() : 파일이 없는지 확인한다.(이게 true면 파일이 없는 것임)

  long getSize() : 파일의 크기

  byte [] getBytes() : 파일의 내용을 바이트 배열로 리턴

  void transfer(File dest) : dest에 파일의 내용을 저장

- 서버에 파일을 저장할 때 파일 이름을 중복되지 않도록 만들어 주어야 한다.

  한명의 유저가 하나의 파일만 업로드 한다면 파일이름을 기본키로 설정하면 된다.

  여러 파일을 업로드하는 경우라면 UUID를 이용해서 유일 무이한 이름을 만들어 줘야 한다.