CI 묻고 답하기

제목 여러 파일 업로드 시 validation 적용하는 문제
카테고리 CI 4 관련
글쓴이 psj452 작성시각 2023/10/17 16:27:42
댓글 : 1 추천 : 0 스크랩 : 0 조회수 : 3814   RSS

안녕하세요.

개별 파일은 가능하지만 여러파일을 한번에 업로드 하는 중에 validation 체크가 적용되지 않아 문의남깁니다.

 

View

//동적으로 계속 생성됨
<input type="file" name="filename[]" class="file">

 

Controllers

$files = $request->getFiles('filename');


//여기서 i는 1씩 증가됨
$fileField = $files['filename'][$i];

 if ($fileField->isValid()) {
     $name	= 'filename';

    $validation = \Config\Services::validation();

    $validationRule = [
            $name => [
                'uploaded[' . $name . ']',
                'max_size[' . $name . ',10240]', // 최대 파일 크기 10MB
            ]
      ];
    
	$validation->setRules($validationRule);

	if ($this->validate($validationRule)) {
		//여기서 실패합니다.
	}
}

여기서 개별파일일 경우 검증규칙은 무난히 통과하며, 배열로 파일을 업로드시 

$this->validate 부분을 주석을 하면 업로드가 정상적으로 됩니다. 

오류 내용은 " filename is not a valid uploaded file. " 입니다. 아마 uploaded 에서 생기는 문제같습니다.

파일은 정상적으로 받는 것은 확인했지만 검증규칙을 통과하지 못합니다.

배열로 받은 파일을 검증규칙을 태우려면 어떻게 해야할까요?

 

감사합니다.

 다음글 azure mysql db 연결 관련 (2)
 이전글 php 레거시 -> ci4 중 shield에 관한... (2)

댓글

변종원(웅파) / 2023/10/20 12:56:26 / 추천 0

여러개를 보내면 여러번 돌면서 체크를 해야겠죠. ci문제가 아니라 로직의 문제....

ci2점대 내용이지만 로직 참고해보세요.

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