마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드 이미지 업로드 처리 방식에 대한 질문 입니다.

0 추천
기존 어플에서 업로드 처리 방식은 다음과 같습니다.

 

사용자 업로드 액션->갤러리에서 이미지 다중 선택-> 선택된 이미지 바이러니화->서버 전달->서버에서 바이러니 파일을 다시 이미지 파일로 조립하여 저장 및 DB처리

 

일단, 일반 앱에서는 무리 없이 처리가 되지만... 이게 사진관 어플일경우 문제가 되더라구요.

원본 이미지를 그대로 전달 하는 과정에서 변수에 바이너리 데이터를 담으면서 아웃 메모리가 발생 하게 되더라구요.

다른분들은 고용량 혹은 큰이미지 다중 업로드 처리를 어떤 식으로 하시나요?

 

ps. 리눅스(centos), httpd(apache2)
terrorboy (610 포인트) 님이 2014년 11월 18일 질문
terrorboy님이 2014년 11월 18일 수정

2개의 답변

+1 추천
 
채택된 답변
"선택된 이미지 바이너리화"

이 단계를 왜 하는지 모르겠네요.

multi part 폼 전송하면 이미지 여러개를 업로드할 수 있습니다.

이미지 파일을 메모리에 올릴 필요도 없습니다.
익명사용자 님이 2014년 11월 18일 답변
terrorboy님이 2014년 11월 18일 채택됨
답변감사합니다.
개발자 분에게 방법을 전달 해봐야겠네요 ㅎㅎㅎ

저는 서버 사이드 담당이라.. 자꾸 끊어서 보내 주신다고 하시기에....
해당 방법으로 변경 후 잘된다고 하시네요.
제쪽에서는 방식이 바뀌면서 수정이 많았지만 말이죠 ㅎㅎㅎ

정말 감사합니다.!!
+1 추천
바이러니화가 뭔지 잘모르겟네요..

그냥 선택된 이미지 리스트에 담고 순차적으로 업로드하셔도 될듯합니다.

읽고 바이트배열 버퍼에 담고 서버로 쏘고...

한번에 이걸 메모리에 올릴 이유는 없는듯
갸아악 (21,260 포인트) 님이 2014년 11월 18일 답변
답변 감사합니다.

어플쪽 개발자에게 요청 하여 multipart 방식으로 바꾸도록 하였습니다.
제가 어플쪽으로는 전혀 몰라서 원래 그런가보다 했는데 펍에서 다른 방법이 보이더라구요. 정확한 정보를 알아야 요청이 수렴 될 것 같아서 질문을 남겨 보았습니다 ㅎㅎ
방금 방법 변경 후 테스트 결과 서버 쪽에서 일반 form의 files처리랑 똑같이 처리 하면되네요. 미리 알았으면 진작 요청 했을건데 ㅎㅎㅎ

ps. 기존방식: 이미지->바이너리화->베이스64압축->array에 담음(여기에서 뻗을 수밖에 없죠..)->서버 전송-> 베이스64디코드 및 파일화-> 파일 지정 위치로 이동 및 DB처리.

ps2. 제가 만들어 쓰고 있는 통신 확인용 로그 파일로 확인 해보았는데.. 잘 넘어 오네요. https://www.dropbox.com/s/m2zjc5qxi3p382z/foxrain_log.png?dl=0
잘풀려서 다행이네요
고생하셨습니다^^
감사합니다.
오늘 느낀건데... 저도 안드로이드 쪽 공부가 필요할것 같네요 ㅎㅎㅎ
맞게 보내 주는건지를 모르니 반론이 어려워서 ㅎㅎ
...