CI 묻고 답하기

제목 파일 업로드를 2개 이상할때 질문입니다.
카테고리 CI 2, 3
글쓴이 James 작성시각 2019/04/02 18:17:44
댓글 : 7 추천 : 0 스크랩 : 0 조회수 : 19020   RSS

print_R($_FILES); 로 찍어보면 2개 파일의 정보가 넘어 옵니다.

  Array
  (
  [userfile] => Array
  (
  [name] => profile.png
  [type] => image/png
  [tmp_name] => /opt/lampp/temp/phpT728h5
  [error] => 0
  [size] => 680874
  )
   
  [image_detail] => Array
  (
  [name] => images.jpg
  [type] => image/jpeg
  [tmp_name] => /opt/lampp/temp/php1cserI
  [error] => 0
  [size] => 7507
  )
   
   

 

이미지를 하나만 업로드 할때는

$data = array('upload_data' => $this->upload->data());

$this->upload->data('file_name'); 

이런식으로 파일이미지를 업로드 했었는데요.

 

2개를 하려고 하니 $this->upload->data(); 가 

먼저 넘어온 이미지 userfile 만 인지하고 뒤에 이미지는 체크를 못하는것 같습니다.

 

2개 이상 처리할때

이미지 파일을 서버에 업로드 하려면 CI에선 어떤식으로 처리 해야 되나요?

 다음글 zip 관련해서 문의드립니다. (2)
 이전글 controller 의 function을 없다고 하는 ... (4)

댓글

변종원(웅파) / 2019/04/02 18:22:47 / 추천 0

file_name을 바꿔서 여러개를 호출하도록 하셔야 합니다. ci의 업로드는 1개 업로드 기준입니다.

요즘은 이미지 선택하면 바로 올라가서 썸네일을 보여주도록 만들기 때문에 여러개를 한꺼번에 올리지 않습니다.

James / 2019/04/02 18:30:17 / 추천 0

file_name을 바꿔서 여러개를 호출하도록 해야 한다는게 구체적으로 무슨 말씀이신지 잘 모르겠습니다.

ci는 1개 기준이라 2개이상의 경우 php 방식으로 처리 해야 한다는 건가요?

한대승(불의회상) / 2019/04/02 20:49:12 / 추천 0

$this->upload->do_upload(file_name); 형식으로 지정해야 합니다.

메뉴얼 참고 하세요.

http://www.ciboard.co.kr/user_guide/kr/libraries/file_uploading.html#CI_Upload::do_upload

kaido / 2019/04/03 09:40:07 / 추천 0
<input type='file' name='upload'>
<input type='file' name='upload[]'>

이 둘의 차이입니다

 

멀티업로드 하실려면 손을 좀 보셔야 합니다

CI4에서는 업로드 라이브러리가 완전히 바뀌긴 합니다만 3이하에서는 멀티업로드 하실려면 수정을 하셔야합니다.

사견입니다만 대는 소를 포함한다고 멀티업로드 기준으로 만들어 놓으면 1개가 들어오든 2개가 들어오든 자동으로 처리 되게 만들어 놓고 사용 하고 있습니다 

가리비 / 2019/04/03 10:23:29 / 추천 0

제가 예전에 멀티 업로드 구현할때 참고했던 방식인데

https://stackoverflow.com/questions/11524356/multiple-files-upload-array-with-codeigniter-2-0

우선 kaido 님이 말씀하신것처럼 input 태그의 name 을 수정해주어야되구요

<input type="file" name="userfile[]" multiple />

제가 올린 링크처럼 $_FILES 로 가져와서 foreach로 돌려서 사용하고 있어요.

kaido / 2019/04/03 11:14:02 / 추천 0

사실...  나올수 있는 로직은 정해져 있어서 가리비님이 올려주신거랑 동일한 수준의 것을 다들 만들어서 사용하고 있죠 ㅋㅋ

저기서 한가지만 더 추가 하자면 해당 경로에 폴더가 없으면 폴더에 권한주고 생성 체크 까지 해주시면 됩니다.

이전에 제가 CI 업로드라이브러리가 빈약하다고 투덜 대던때가 벌써 2년전이네요 ㅎㅎ

다만 이거 없어서 넣고 저거 없어서 넣고 하다보면 이게 라이브러리를 가져다 쓰는게 편한건지.. 기존에 이미 완성되어 돌아다니는 업로드 함수 하나 가져다 넣는게 편한지 아리송 해지기도 합니다.

완벽한 물건은 없으니 중요한건 사용자의 선택이라고 생각 되네요.

그럼에도 프레임워크의 라이브러리를 보완해서 컴버전 하는데 의의를 주자면... 이것저것 가져다 제각각 규격으로 쓰지 말고, 하나의 맞춰진 표준화 작업이라고 생각 하시면 무의미 하지는 않습니다.

프레임워크를 사용하는 가장 큰 의의 이기도 하구요.

James / 2019/04/03 14:37:41 / 추천 0
많은 분들의 도움 감사드립니다. ^^