ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [ios] 모바일 웹에서 파일업로드 하기
    Dev_Study/iOS 2022. 2. 18. 17:35
    반응형

    ax5ui-uploader로 파일업로드를 구현하는데
    ios웹브라우저에서 발생했던 4가지 문제점

    1. 파일업로드 영역 클릭시 [사진보관함/사진촬영/탐색] 선택 시트가 뜨지 않고

       바로 파일브라우저로 넘어가버림

     

    2. 파일브라우저에서 업로드를 하기위한 파일을 선택할수가 없음(파일 선택 비활성화 상태)

    3. 파일브라우저에서 멀티업로드를 위해 여러개의 파일을 선택할수가 없음

    4. 파일업로드 영역 클릭후 사진촬영 클릭시 종료되는 문제

    기존 사이트가 파일업로드 기능이 ax5ui-uploader로 구현되어있는데

    제이쿼리 업로드 라이브러리로 Dropzone.js와 비슷한거같다

    AX5UI는 JS UI 프레임워크라고 한다

    http://ax5ui.axisj.com/ax5ui-uploader/

    ax5ui-uploader demo

     

    ✔ Solution

    아래 보이는 Dropzone 영역은 ax5ui-uploader로 구현된 파일업로드 영역이다

    ax5ui-uploader 구현된 파일업로드 영역

    그건 그렇고 아이폰으로 웹브라우저에서 업로드를 해본적이 없어서 몰랐는데

    파일업로드시 아래와 같은 액션시트가 떠야한다고 하는데

    ios 웹브라우저에서 파일업로드 클릭시 뜨는 시트

     

    사진/동영상/파일을 모두 업로드 가능하게 하기 위해서는 위의 액션시트를 띄워야하는데

    파일업로드 영역을 클릭하니 아래와 같은 파일브라우저로 화면이 바로 넘어가버렸다(1번 문제 발생)

    iPhone 파일브라우저

    http://ax5ui.axisj.com/ax5ui-uploader/에서 Basic Usage의 구현예제를 보면

    setConfig의 속성에 accept속성은 보이지 않는데

    http://ax5ui.axisj.com/ax5ui-uploader/api/index.html에서 API문서를 보면

    ax5ui-uploader API 문서중 accept 파라미터 확인

    accept파라미터는 MIME Type을 지정하기 때문에

    accept:"image/*를 추가했다

    accept:"image/* 파라미터 추가

    accept:"image/*를 추가후 다시 파일업로드 영역을 클릭해보니

    아래와 같이 선택시트가 뜨게됐다(1번 문제 해결)

     

    탐색을 누르면 아래와 같이 파일브라우저가 열리게 되는데

    문제가 있다 파일이 회색으로 표시되어 비활성화 상태로 선택할수가 없어서

    파일업로드를 할수가 없다...(2번 문제 발생)

    iPhone 파일브라우저

    파일을 선택할수 없는 문제때문에

    처음에는 ios의 앱권한 때문인지 ios에서 WkWebview에서 지원하지 않는것인지 찾다보니

    ios5까지는 웹브라우저에서 사진업로드만 가능하며 ios6부터는 파일업로드도 가능하다고 하는데

    왜안되는지를 모르니까 한참 헤매다가 우연히 해결했다

    ax5ui-uploader의 accept:의 값에 application/octet-stream를 추가해주면 된다

    accept 파라미터에 application/octet-stream 추가

    accept파라미터에 application/octet-stream추가후 다시 파일업로드 > 탐색을 해보면

    파일선택이 활성화된 파일브라우저

    파일을 선택할 수 있도록 활성화되어 잘보여진다(2번 문제 해결)

    근데 또 문제가 있다

    멀티업로드를 하고싶은데 여러개를 선택할 수가 없다

    옵션에서 선택이 보이지 않는 문제

     

     

    http://ax5ui.axisj.com/ax5ui-uploader/api/index.html에서 API문서를 다시보면

    멀티파일업로드를 하게해주는 multiple 파라미터가 있고 기본값이 false이다

    ax5ui-uploader API 문서중 multiple 파라미터 확인

    multiple: true를 추가후

    multiple:"true"파라미터 추가

    다시 파일업로드 영역을 클릭해 파일브라우저를 열어서

    우측상단에 동그라미에 ...이 있는 옵션 아이콘을 눌러보면 선택 옵션이 보여지게 된다(3번 문제 해결)

    옵션에서 선택이 추가됐다

    옵션에서 선택을 누른뒤 업로드할 파일을 선택하고

    열기를 누르면 업로드가 완료된다

    각 파일을 선택후 열기를 누르면 업로드가 된다

     

    추가적으로 파일업로드 > 사진찍기 클릭시 멈춤 or 종료된다면 권한을 추가해줘야한다

    사진 찍기 클릭시 멈추거나 종료가 된다면 앱권한을 추가해줘야 한다

    Info.plist의 Infomation Property List에

    Privacy - Camera Usage Description

    Privacy - Photo Library Usage Description

    Privacy - Photo Library Addition Usage Description

    Privacy - Microphone Usage Description

    4가지 권한을 추가해주면 된다(4번 문제 해결)

    Info.plist에 4가지 권한 추가

    반응형

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

    1. iOS 앱 아이콘 사이즈  (0) 2018.02.06

    댓글

Designed by Tistory.