본문 바로가기

Tech/iOS

[iOS]Day39 - Authorization - Camera

728x90

단체 사진 하나 정도는 찍어두자

오늘은 app에서 중요한 카메라 겔러리 동영상 달려보자


Privacy 설정

infoPlist에서 동영상, 갤러리, 카메라에 접근할 수 있도록 설정해주자

 

* 카메라, 갤러리

- 가지고 오기, 저장 마이크

 - 카메라를 촬영하고 싶다하면 camera usage, 마이크 권한도 허용

 

*갤러리 권한

- 가지고만 오고 싶다면 권한이 필요 없음

-  갤러리에 사진 저장하고 싶다면 권한 필요

-  사용자가 사진을 가지고 오고 명확하게 갤러리를 여는게 명확

- 사진 가지고 오는건 권한이 필요 없기 때문에 몇개만 허용해도 다 가져올 수 있음

-  가지고 오는 것만이면 권한 필요 없는거 아님? 정해진 범위 벗어나면 addition use description 사용


YPImagePicker

카메라 실습을 위해 라이브러리를 활용하였다 (카메라의 경우 시뮬레이터에서 실습 불가능하니 꼭 device를 준비하자)

 

UIImagePickerController

 

사진, 갤러리, 동영상 이벤트를 관리 해주는 controller ios14 이후로는 촬영만 UIImageController에서 관리하고 나머지는 PHPPickerViewController에서 관리를 하도록 하고 있다

 


*MultipartFormData

사용자가 양식을 작성한 결과 값의 집합을 번들로 만드는데 사용한다

여러 파일들을 서버에 업로드 하는 경우 단일 타입 표현이 어렵기 때문에 Content Type을 multipartfromdata로 설정 해야한다

 

*ContentType

Pdf나 jpg 파일 같은 형식으로 파일을 업로드 해야하는 상황이 올 수 있다

이런 상황에 파일이 안보내질 수 있는데 파일을 텍스트 형태로 인코딩하여서 HTTP Body에 담아서 서버로 전송해야 보내진다

 

*MIME 타입

위 코드를 보면 위에서 설명한 것처럼 Content Type이 png타입인 것을 알 수 있다

또한 위에서 설명한 것처럼 png가 아니라 jpg나 pdf 같은 파일이었다면 압축 후 텍스트 형태로 인코딩 해야하는 것을 알 수 있었다 

이러한 상황 때문에 파일이 서버로 전송될 때 타입의 형태를 명시 해주어야 한다

https://developer.mozilla.org/ko/docs/Web/HTTP/Basics_of_HTTP/MIME_types

Mime 타입은 헤더에 명시해주면 된다

'Tech > iOS' 카테고리의 다른 글

[iOS]Day43 - Custom FrameWork  (0) 2022.08.16
[iOS]Day43 - Access Control  (0) 2022.08.16
[iOS]Day38 - Privacy  (0) 2022.08.11
[iOS]Day37 - AwakeFromNib, PrepareForReuse  (0) 2022.08.10
[iOS]Day37 - TableView+CollectionView  (0) 2022.08.09