CI 묻고 답하기

제목 upload 클래스에서 확장자 대소문자를 소문자로 변경?
글쓴이 벨리 작성시각 2011/01/31 19:19:00
댓글 : 2 추천 : 0 스크랩 : 0 조회수 : 27988   RSS
$config['allowed_types'] = 'gif|jpg|png';
$config['file_name'] = date("Ymd").'_'.random_string('numeric', 5);
$this->load->library('upload', $config);
$this->upload->initialize($config);

이렇게 업로드 클래스를 이용하여 파일명을 날짜 조합으로 일괄 수정하여 등록합니다.

실제파일명 : 돈벌고싶은벨리증명사진.JPG

등록된파일명 : 20110131_42364.JPG

잘됩니다. 아주 잘됩니다.

그런데 갑자기 저기 확장자의 JPG가 눈에 거슬리기 시작합니다. ㅡ.ㅡ

파일명을 일괄적으로 관리하고자 했는데... 확장자에서 대문자 소문자는 실제 파일명의 형태로 등록되고 있습니다.

업로드 클래스의 확장자 받아오는 함수에 strtolower 추가도 해봤지만 .. 안돼네요...

function get_extension($filename)
{
     $x = explode('.', $filename);
     return strtolower('.'.end($x));
}
 
등록된 파일을 rename 시키는 방법외 ci로 해결하는 방법 아시는분 .. 조언부탁드립니다.






 다음글 Email 질문입니다. (1)
 이전글 where in 액티브 레코드 질문 드려요 (4)

댓글

변종원(웅파) / 2011/02/01 10:28:27 / 추천 0
 업로드 성공하면 

$this->upload->data()

로 각 변수들을 받을 수 있습니다.

Array
(
    [file_name]    => mypic.jpg
    [file_type]    => image/jpeg
    [file_path]    => /path/to/your/upload/
    [full_path]    => /path/to/your/upload/jpg.jpg
    [raw_name]     => mypic
    [orig_name]    => mypic.jpg
    [file_ext]     => .jpg
    [file_size]    => 22.2
    [is_image]     => 1
    [image_width]  => 800
    [image_height] => 600
    [image_type]   => jpeg
    [image_size_str] => width="800" height="200"
)

업로드 완료후 업로드한 파일을 db에 입력하기 전에
위의 full_path를 가지고 파일확장자를 수정하고
db에 수정된 파일확장자를 입력하시면 될 것 같네요.

배강민 / 2011/11/09 13:43:35 / 추천 0
 저도 작업하다가 같은 문제 생겨서 고민하다가.. 찾았습니당..ㅋ

$config 배열 세팅 전에

$_FILES['파일 input name']['name'] = strtolower($_FILES['파일 input name']['name']);

요래 하고서 그대로 진행하면

aa.GIF 도 aa.gif 로 올라갑니당~

오래전 질문 글이라서 도움이 되시거나 보실지 모르겠지만..ㅋ