diff --git a/classes/file/FileHandler.class.php b/classes/file/FileHandler.class.php index 130e81d8b..4ed2c7ab8 100644 --- a/classes/file/FileHandler.class.php +++ b/classes/file/FileHandler.class.php @@ -333,21 +333,26 @@ // 파일을 쓰고 끝냄 switch($target_type) { case 'gif' : - @imagegif($thumb, $target_file, 100); + $output = @imagegif($thumb, $target_file); break; case 'jpeg' : case 'jpg' : - @imagejpeg($thumb, $target_file, 100); + $output = @imagejpeg($thumb, $target_file, 100); break; case 'png' : - @imagepng($thumb, $target_file, 9); + $output = @imagepng($thumb, $target_file, 9); break; case 'wbmp' : case 'bmp' : - @imagewbmp($thumb, $target_file, 100); + $output = @imagewbmp($thumb, $target_file, 100); break; } + + if(!$output) return false; + @chmod($target_file, 0644); + + return true; } } ?> diff --git a/modules/document/document.item.php b/modules/document/document.item.php index 6f0ce9184..2acd1a880 100644 --- a/modules/document/document.item.php +++ b/modules/document/document.item.php @@ -435,7 +435,7 @@ if(!$height) $height = $width; // 첨부파일이 없거나 내용중 이미지가 없으면 return false; - if(!$this->hasUploadedFiles() && !preg_match("!http:\/\/([^ ^\"^']*?)\.(jpg|png|gif|jpeg|bmp)!is", $this->get('content'))) return; + if(!$this->hasUploadedFiles() && !preg_match("!get('content'))) return; // 문서 모듈의 기본 설정에서 Thumbnail의 생성 방법을 구함 if(!in_array($thumbnail_type, array('crop','ratio'))) { @@ -475,8 +475,7 @@ $filename = $file->uploaded_filename; if(!file_exists($filename)) continue; - FileHandler::createImageFile($filename, $thumbnail_file, $width, $height, 'jpg', $thumbnail_type); - if(file_exists($thumbnail_file) && filesize($thumbnail_file)>0) return Context::getRequestUri().$thumbnail_file; + if(FileHandler::createImageFile($filename, $thumbnail_file, $width, $height, 'jpg', $thumbnail_type)) return Context::getRequestUri().$thumbnail_file; } } } @@ -484,16 +483,18 @@ // 첨부된 파일이 없으면 내용중 이미지 파일을 구함 $content = $this->get('content'); $target_src = null; - preg_match_all("!http:\/\/([^ ^\"^']*?)\.(jpg|png|gif|jpeg|bmp)!is", $content, $matches, PREG_SET_ORDER); + preg_match_all("!src=(\"|')([^\"' ]*?)(\"|')!is", $content, $matches, PREG_SET_ORDER); for($i=0;$idocument_srl)); FileHandler::getRemoteFile($target_src, $tmp_file); - if(file_exists($tmp_file)) FileHandler::createImageFile($tmp_file, $thumbnail_file, $width, $height, 'jpg', $thumbnail_type); + if(!file_exists($tmp_file)) continue; + $output = FileHandler::createImageFile($tmp_file, $thumbnail_file, $width, $height, 'jpg', $thumbnail_type); FileHandler::removeFile($tmp_file); - if(file_exists($thumbnail_file) && filesize($thumbnail_file)>0) return Context::getRequestUri().$thumbnail_file; + if($output) return Context::getRequestUri().$thumbnail_file; } }