CI 묻고 답하기

제목 CI 파일업로드 질문입니다
카테고리 CI 4 관련
글쓴이 보라색맛났어 작성시각 2021/01/05 15:54:12
댓글 : 3 추천 : 0 스크랩 : 0 조회수 : 9487   RSS

ajax로 다중파일 업로드를 하려고 하고 있습니다

 

데이터 받는 곳에서 $_FILES를 찍어보면 데이터가 나오는데 CI 업로드 처리 부분에서 var_dump를 찍어보니까

$_FILES  내용 

array(1) { ["file"]=> array(5) { ["name"]=> array(1) { [0]=> string(64) "fa5cf2042e329f8d63c1d3f8039fa59dcd4c93f222786e9312aa7adcfd38.jpg" } ["type"]=> array(1) { [0]=> string(10) "image/jpeg" } ["tmp_name"]=> array(1) { [0]=> string(14) "/tmp/phpsmqPVp" } ["error"]=> array(1) { [0]=> int(0) } ["size"]=> array(1) { [0]=> int(56171) } } }

 

var_dump 내용

array(1) { ["file"]=> string(52) "업로드할 파일을 선택하지 않았습니다." } ++1++

 

같이 에러문구가 뜹니다 

 

어떤게 문제인걸까요?

 

$arrUploadfile = array();
		$errCount = 0;
		$arrErrors = array();
		foreach ( $_FILES as $key => $uploadfile  ) {		    
			
			if ($this->upload->do_upload($key)){
				$arrUploadfile[$key] = $this->upload->data();
			}else{
				$error = ( ! isset($_FILES[$key]['error'])) ? 4 : $_FILES[$key]['error'];
				echo var_dump($error);
				
				if ($error != 4){
					$arrErrors[$key] = $this->upload->display_errors('','');
					$errCount++;
				}
			}
			
			var_dump($arrErrors);
			echo "++".$errCount."++";
			
		}

=================================================

/* 스크립트 */
function doFileUpload(){
    	var formData = new FormData($('#fileForm')[0]); 
    				
    	
    	$.ajax({ type: "POST",
    			 enctype: "multipart/form-data",
    			 url: "/saveImage?m=<?=$menuid?>",
    			 data: formData, // 필수 
    			 processData: false, // 필수 
    			 contentType: false, // 필수 
    			 cache: false, 
    			 success: function (result) { 
    			 	//window.self.close();
    			 	//location.reload();
    			 }, error: function (e) { } });
	
	}

 

 다음글 간단한 웹페이지를 만들어볼려고 닷홈으로 호스팅해서 시작... (3)
 이전글 3.x에서 namspace를 사용하는 controlle... (3)

댓글

변종원(웅파) / 2021/01/05 16:08:19 / 추천 0

$key 를 출력해보세요. 어떤게 나오는지..

$this->upload->do_upload($key) 부분 매뉴얼에 따르면 아래와 같습니다. 

기본설정은 파일이 userfile라는 폼필드로부터 업로드 될 것이라고 기대합니다. 또한 폼은 multipart 타입이라야 합니다.

<form method="post" action="some_action" enctype="multipart/form-data" />

필드명을 여러분이 저장하고 싶다면 do_upload() 함수에 아래와 같이 그 이름을 파라미터로 넘겨주시면 됩니다:

$field_name = "some_field_name";
$this->upload->do_upload($field_name);
보라색맛났어 / 2021/01/05 16:14:14 / 추천 0
변종원(웅파)  array(1) { [0]=> int(0) } 같이 찍히네요..; 
PureAni / 2021/01/05 17:05:17 / 추천 0
CI 라이브러리 안쓰고, 순수 PHP 로 코딩하면 파일이 정상적으로 업로드되나요?