사용자 도구

사이트 도구


사이드바

카테고리

webapp:업로드한-한글-이미지-파일-이름이-깨지면

제로보드

제로보드

한글이미지파일 업로드시 파일이 깨져보이는 경우

한글이미지 파일을 업로드 하는 경우, DB에는 utf8로 저장되지만 파일명은 한글이 깨져서 저장되는 경우가 있다.
서버 os 가 한글이 아닌 경우, 이런 문제가 발생하는 것 같은데 실제 디스크에 저장되는 파일명을 DB 에 있는 파일명과 같게 하면 이 문제를 해결 할 수 있다.

1. $(제로보드루트)/modules/file/file.controller.php 파일에서 다음 부분을 수정

// 이미지인지 기타 파일인지 체크하여 upload path 지정
  if(preg_match("/\.(jpg|jpeg|gif|png|wmv|wma|mpg|mpeg|avi|swf|flv|mp1|mp2|mp3|asaf|wav|asx|mid|midi|asf|mov|moov|qt|rm|ram|ra|rmm|m4v)$/i", $file_info['name'])) {
    $path = sprintf("./files/attach/images/%s/%s", $module_srl,getNumberingPath($upload_target_srl,3));
    $filename = $path.$file_info['name'];
    $direct_download = 'Y';
  } else {
    $path = sprintf("./files/attach/binaries/%s/%s", $module_srl, getNumberingPath($upload_target_srl,3));
    $filename = $path.md5(crypt(rand(1000000,900000), rand(0,100)));
    $direct_download = 'N';
  }

에서

$filename = $path.$file_info['name'];

부분을

$file_extension = strtolower(substr(strrchr($file_info['name'],'.'),1));
$filename = $path.md5(crypt(rand(1000000,900000), rand(0,100))).'.'.$file_extension;

으로 교체.

webapp/업로드한-한글-이미지-파일-이름이-깨지면.txt · 마지막으로 수정됨: 2021/05/09 17:06 저자 kieuns