| 제목 | CI3 서버 이관 후 upload 라이브러리로 파일 업로드 및 에디터 사진 업로드 오류 | ||||||
|---|---|---|---|---|---|---|---|
| 카테고리 | CI 2, 3 | ||||||
| 글쓴이 | 도토리 | 작성시각 | 2021/01/25 11:32:42 | ||||
|
|
|||||||
|
회사에서 사용중인 웹호스팅 서버에서 php school의 가상서버호스팅으로 소스를 이관 후 기존 웹호스팅에서 정상 작동하던 파일 업로드기능이 작동하지 않습니다. 1. 두 서버의 환경
2. 문제 현상 1) Ci의 upload 라이브러리로 파일 업로드 시 파일 값 없음 아래는 테스트 용도로 간단히 찍어본 코드입니다. --- 파일 업로드 HTML ---
<form method="post" enctype="multipart/form-data" action="/">
<input type="file" name="file" value="">
<input type="submit" value="submit">
</form>
--- 파일 처리 PHP ---
$config['upload_path'] = './uploads/';
$config['allowed_types'] = '*';
$config['overwrite'] = TRUE;
$config['max_size'] = 30720;
$config['encrypt_name'] = TRUE;
$this->load->library('upload', $config);
$this->upload->initialize($config);
// $this->upload->do_upload('file_input'); // 20210125 12:21 수정
$this->upload->do_upload('file');
// 업로드 파일 정보
$file = $this->upload->data();
var_dump($_FILES);
var_dump($file);
--- 결과 ---
array ( // $_FILES 내용
'file' =>
array (
'name' => 'dog.jpg',
'type' => 'image/jpeg',
'tmp_name' => '/tmp/phpc4Uc3y',
'error' => 0,
'size' => 208100,
),
)
array ( // $file 내용(upload 라이브러리를 통한 파일 내용)
'file_name' => '',
'file_type' => '',
'file_path' => './uploads/',
'full_path' => './uploads/',
'raw_name' => false,
'orig_name' => '',
'client_name' => '',
'file_ext' => '',
'file_size' => NULL,
'is_image' => false,
'image_width' => NULL,
'image_height' => NULL,
'image_type' => '',
'image_size_str' => '',
)
결과 내용을 보면, $_FILES에는 정상적으로 파일값이 전달되었음을 확인할 수 있는데, upload 라이브러리로는 파일이 전달되지 않습니다.
2) 네이버스마트에디터(smarteditor2)에서 사진 업로드 사용 시 업로드용 새 창에서 사진 목록까지는 표시되는데, 이후 확인 버튼 클릭 시 반응 없음(서버에 파일 업로드 되지 않음) : 에디터의 경우 CI와 관계가 없긴 하지만, 현재 CI의 파일 업로드도 안 되는 상황이라 혹시 비슷한 원인 때문이 아닐까 하여 함께 글을 작성합니다.
3. 시도 1) 파일 용량 설정 : php.ini의 upload_max_filesize, post_max_size 값을 각각 2M에서 20M로 변경 2) 권한 : 관련된 모든 디렉토리의 권한을 확인해봤지만 모두 644로 적용되어 있음
아무리 인터넷을 검색해봐도 원하는 답을 얻지 못했고, 어디서 무엇을 어떻게 건드려야 할지 막막해서 이렇게 글을 작성합니다. |
|||||||
| 다음글 | sess_time_to_update 관련 질문 드립니다... (6) | ||||||
| 이전글 | 파일 업로드 클래스를 통해서 동영상 업로드 (5) | ||||||
|
변종원(웅파)
/
2021/01/25 12:11:09 /
추천
0
|
|
도토리
/
2021/01/25 12:24:26 /
추천
0
변종원(웅파) 그렇네요! 위 코드는 제가 테스트를 위해 임시로 작성하면서, 잘못 작성한 것이 맞고, 위 내용 수정했습니다! 다만 위 내용대로 수정해도 증상 해결은 여전히 되지 않네요...ㅠ |
|
도토리
/
2021/01/25 12:58:57 /
추천
0
** 자답 겸 문의 ** 이것 저것 건드려보다가 혹시나 해서 권한 설정을 다시 건드려봤는데요! 해당 디렉토리의 other의 쓰기 권한을 허용하니 업로드가 되네요!(라이브러리, 에디터 모두 해당되네요...ㅠ) 그런데, other의 쓰기 권한을 허용하는게 맞는 걸까요? 당장 서비스는 되니, 허용하겠지만, 한 번도 other에 읽기 권한 말고 다른 권한을 허용한 적이 없어 걱정되네요...ㅠ |
|
변종원(웅파)
/
2021/01/25 13:01:14 /
추천
0
웹서버는 나도 아니고 그룹도 아니기 때문에 other가 맞습니다
|
|
도토리
/
2021/01/25 13:02:51 /
추천
0
변종원(웅파) 친절하게 계속 답변 해주셔서 감사합니다!^^ |
|
황소
/
2021/08/20 14:50:52 /
추천
0
저도 찾아보다가 찾았네요. 리눅스 Apache php-fpm 을 사용할 경우에 설정을 해줘야 한다네요. /etc/selinux/config 파일의 SELINUX=enforcing ==> SELINUX=permissive 로 변경 저장 후에 setenforce 0 해주니까 됩니다.
|
$this->upload->do_upload('file_input'); 선언된 파일명이랑 html의 파일명이랑 다릅니다.