| 제목 | 복수개 파일 업로드 후, 업로드한 파일정보 db테이블에 insert 처리 | ||
|---|---|---|---|
| 카테고리 | PHP | ||
| 글쓴이 | 그동안 | 작성시각 | 2019/06/20 00:32:05 |
|
|
|||
|
복수개 파일 업로드 후(서버에 파일 올리는데 성공), 파일 업로드된 개수만큼 foreach해서 - 업로드된 경로 - 업로드된 파일명 를 DB에 저장하려고 합니다.
$upfile_info = $this->upload->data(); //[1] 복수개 파일업로드 했을경우 어떻게 해야 할까요? 배열로 돌림? 잘안되네요;; foreach($upfile_info as $key => $value) //[2] 업로드한 이미지 수 만큼 foreach하고 싶습니다 'portfolio_img_name' => $upfile_info['file_name'] , //[3] foreach된 이미지명 대입을 어떻게 해야 할까요?
[컨트롤러]
//$this->upload->data는 업로드된 파일의 다양한 정보를 갖고 있다
$upfile_info = $this->upload->data(); //[1] 복수개 파일업로드 했을경우 어떻게 해야 하는지요
//포트폴리오 이미지
//foreach($upfile_info as $key => $value) //[2] 업로드한 이미지 수 만큼 foreach하고 싶습니다
//{
$data = array( //db에 요청할 값을 배열로 만듬. db필드명 => 수정값
'db_table_name' => 'profile_portfolio_img' , //업데이트할 DB 테이블명
'pport_id' => $result ,
'portfolio_img_path' => $upfile_info['file_path'] ,
'portfolio_img_name' => $upfile_info['file_name'] , //[3] foreach된 이미지명 대입을 어떻게 해야 할까요
'created_by' => $this->session->userdata('user_nm') ,
'created_ip' => $this->session->userdata('ip_address')
);
$result = $this->profile_portfolio_img_m->my_profile_add_06_insert($data);
|
|||
| 다음글 | 목록 필터 기능을 만들고 있는데요, 뷰 목록의 게시물이... (7) | ||
| 이전글 | ftp 업로드시 ftp_connect, ftp_logi... (1) | ||
|
kaido
/
2019/06/20 09:39:26 /
추천
0
|
|
그동안
/
2019/06/20 10:53:33 /
추천
0
kaido님, 일단 서버에 복수파일 업로드는 구현된 상황인데요,,, 복수업로드 된 파일정보를 db 테이블에 insert하는 부분에서 막혀서 질문 드렸습니다. 질문 글의 [1][2][3]번 부분에 대해 가르침을 좀 부탁 ㅠㅠ
|
|
kaido
/
2019/06/20 11:09:05 /
추천
0
/** 업로드 옵션 */
function set_upload_options()
{
//upload an image options
$config = array();
$config['upload_path'] = FCPATH . 'uploads/product/temp/';
//$config['allowed_types'] = 'gif|jpg|png';
$config['allowed_types'] = '*';
$config['max_size'] = '51200'; //50MB ... 단위는 KB
$config['overwrite'] = false;
$config['max_width'] = 0; //무제한
$config['max_height'] = 0; //0 무제한
return $config;
}
/** 멀티 형태 업로드 */
function _do_upload_multi($target_file, $insertId = null)
{
$this->load->library('upload');
$files = $_FILES;
$cpt = count($_FILES["$target_file"]['name']);
$target_file_temp = $target_file . "_temp";
for ($i = 0; $i < $cpt; $i++) {
$_FILES["$target_file_temp"]['name'] = $files["$target_file"]['name'][$i];
$_FILES["$target_file_temp"]['type'] = $files["$target_file"]['type'][$i];
$_FILES["$target_file_temp"]['tmp_name'] = $files["$target_file"]['tmp_name'][$i];
$_FILES["$target_file_temp"]['error'] = $files["$target_file"]['error'][$i];
$_FILES["$target_file_temp"]['size'] = $files["$target_file"]['size'][$i];
$this->upload->initialize($this->set_upload_options());
if (!$this->upload->do_upload($target_file_temp)) {
$error = array('error' => $this->upload->display_errors());
echo '<xmp>'; print_r($error); echo '</xmp>';
return false;
} else {
$data = array('upload_data' => $this->upload->data());
// $data["upload_data"]["file_name"];
// .....
// $data["upload_data"]["file_size"];
echo '<xmp>'; print_r($data); echo '</xmp>';
}
}
}
가장 기본 형태입니다. 나머지는 그동안님의 센스 있는 코딩이 필요합니다 !
|
|
그동안
/
2019/06/20 12:21:02 /
추천
0
한가지만 더 물어볼께요~~;; 파일 2개 서버에 업로드된 것 확인하고. 아래 값 찍어보면 $data = array('upload_data' => $this->upload->data());
이렇게 1개 파일만 확인 됩니다. $data = array <=== 왜 array 했는데 1개만 확인될까요??? <xmp>Array )
|
|
kaido
/
2019/06/20 13:43:34 /
추천
0
같은 $data 안에 2번 들어간것 아닌가요? $data[1] $data[2] 이런 형태로 각각 나눠서 넣으시면 잡힐것 같습니다
|
복수 업로드는 upload 라이브러리 그대로 사용하시면 안됩니다 ㅎㅎ
우선 복수 업로드 기존 php 코드부터 분석해 보시는게 좋습니다.
이부분은 가능하면 꼭 참고해 보시길 바랍니다.
사실 복수 업로드가 별거 없습니다
복수일경우 print_r 찍어보시면 복수 배열로 넘어옵니다.
ci upload 는 단일 업로드를 기준으로 만들어져서 별도의 로직처리가 필요합니다.
codeigniter multy upload 찾아보시면 커스텀 라이브러리가 많이 돌아다닙니다. 그걸 참고하시는게 더 빠릅니다.