CI 묻고 답하기

제목 phpoffice 엑셀 업로드 오류건에 대한 질문입니다.
카테고리 CI 4 관련
글쓴이 엘제이 작성시각 2023/02/22 12:11:02
댓글 : 1 추천 : 0 스크랩 : 0 조회수 : 4466   RSS

제 개인서버에서 엑셀업로드 하여 임포트가 잘됩니다. 

개발서버에 서 안치하고 실행해보면  아래와 같이 오류가 나옵니다. var_dump 내용은 아래오류내용중 파일이 없다 그래서

찍어봤는데 나오더군요 파일이 파일이 올려졌는데 없다고 나오는건.. 업로드 경로에 문제가 있는건 아닌지 의심스럽네요

소스에서 업로드 경로 설정하는 거가 없는데 어디서 해야 하는거죠? 

 

배열(1) { ["업파일"]=> 배열(6) { ["이름"]=> 배열(1) { [0]=> string(46) "2021_2차수_사업비집행실적_전체.xlsx" } ["full_path"]=> 배열(1) { [0]=> string(46) "2021_2차수_사업비집행실적_전체.xlsx" } ["유형"]=> 배열(1) { [0]=> 문자열(0) "" } ["tmp_name"]=> 배열(1) { [0]=> 문자열(0) "" } ["오류"]=> 배열(1) { [0]=> 정수(1) } ["크기"]=> 배열(1) { [0]=> 지능(0) } } }

PhpOffice\Php스프레드시트\리더\예외

파일 ""이(가) 없습니다

 

class ExcelLibrary

{

    private $SpreadSheet;

    private $CommonLib;

    public function __construct()

    {

        $this->SpreadSheet = new Spreadsheet();

        $this->CommonLib = new CommonLibrary();

    }

    public function import($Files, $Var_name )

    {

        $ExcelData = array();

        if(

            is_array($Files) AND

            !empty($Var_name)

        ){

            if( !isset($Files[$Var_name]) ){

                return throw new \Exception( "첨부파일 정보를 알 수 없습니다." );

            }

            $File = $Files[$Var_name];

            $ImportCount = 1;

            if (is_array($File['name']))

            {

                // 배열로 전달받은 개수만큼

                foreach($File['name'] as $key => $value)

                {

                    // 빈 배열로 넘어올 경우를 방지

                    if( !empty($File['name'][$key]) ){

                        // 파일크기 비교

                        if( PolicyType::ExcelFileSize < $File['size'][$key] ){

                            return throw new \Exception( "첨부파일의 파일 크기를 확인하세요." );

                        }

                        // 허용 가능한 확장자 비교

                        $FileName_Arr = explode('.', $File['name'][$key]);

                        $extension = strtolower(end($FileName_Arr)); // 확장자 찾기

                        if( !in_array($extension, PolicyType::ExcelImportExtension) ){

                            return throw new \Exception( "첨부파일의 확장자를 확인하세요." );

                        }

                        // 확장자에 따른 Reader 처리

                        if ('csv' == $extension){

                            $reader = new ReaderCsv();

                        }

                        else{

                            $reader = new ReaderXlsx();

                        }

                        $spreadsheet = $reader->load($File['tmp_name'][$key]);

                        $ExcelData[] = $spreadsheet->getActiveSheet()->toArray();

                        unset($FileName_Arr, $extension, $reader, $spreadsheet);

                        $ImportCount++;

                    }

                }

            }

        }

        return $ExcelData;

    }

    // 엑셀 다운로드(HTML 타입)

    public function HTMLExport($ExcelFileName, $ExcelData)

    {

        $Result = "";

        if( !empty($ExcelFileName) AND !empty($ExcelData) ){

            $dates = Date("Ymd");

            header("Content-type: application/vnd.ms-excel; charset=utf-8");

            header("Content-Disposition: attachment; filename = " . $ExcelFileName . "_" . $dates . ".xls");

            header("Content-Description: PHP4 Generated Data");

            echo "<meta http-equiv='Content-Type' content='text/html; charset=utf-8'>";

            echo $ExcelData;

        }

        return $Result;

    }

}

 다음글 ci3 개발 환경.. 테스트 환경 구성에 대해서 (1)
 이전글 전체 페이지에 공통 데이터 전달방법이 있을까요? (2)

댓글

한대승(불의회상) / 2023/02/22 18:09:20 / 추천 0
파일 업로드 디렉토리의 퍼미션을 확인해 보세요.