첨부이미지 크기 줄여서 저장하는 방법

안녕하세요.

thumbnail로 첨부하는 이미지를 저장할때 (upload시점에) size를 줄여서 저장하려면 어떻게 해야 하는지 궁금합니다.

kboard_resize()라는 함수는 이미 upload되어 있는 이미지를 resize하는 함수인거 같아서 용도에 안맞는거 같구요..

가이드 부탁드립니다. 항상 도움주셔서 감사합니다.

좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기
좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기
  • /kboard/class/KBContent.class.php 파일을 수정해주셔야 합니다.

    public function setThumbnail($uid){
            global $wpdb;
            if(!$this->thumbnail_store_path) die(__('No upload path. Please enter board ID and initialize.', 'kboard'));
            
            if($_FILES['thumbnail']['tmp_name']){
                $file = new KBFileHandler();
                $file->setPath($this->thumbnail_store_path);
                $upload = $file->upload('thumbnail');
                $original_name = addslashes($upload['original_name']);
                $file = addslashes($upload['path'] . $upload['stored_name']);
                
                if($original_name){
                    $this->removeThumbnail($uid);
                    $wpdb->query("UPDATE `{$wpdb->prefix}kboard_board_content` SET `thumbnail_file`='$file', `thumbnail_name`='$original_name' WHERE `uid`='$uid'");
                }
            }
    }

    위 코드를 찾아서 아래처럼 코드를 추가해주세요.

    public function setThumbnail($uid){
            global $wpdb;
            if(!$this->thumbnail_store_path) die(__('No upload path. Please enter board ID and initialize.', 'kboard'));
            
            if($_FILES['thumbnail']['tmp_name']){
                $file = new KBFileHandler();
                $file->setPath($this->thumbnail_store_path);
                $upload = $file->upload('thumbnail');
                $original_name = addslashes($upload['original_name']);
                $file = addslashes($upload['path'] . $upload['stored_name']);
                
                if($original_name){
                    
                    $upload_dir = wp_upload_dir();
                    $file_path = explode('/wp-content/uploads', $upload['path'] . $upload['stored_name']);
                    $file_path = strtolower($upload_dir['basedir'] . end($file_path));
                    $image_editor = wp_get_image_editor($file_path);
                    if(!is_wp_error($image_editor)){
                        $image_editor->resize(300, 300, true);
                        $image_editor->save($file_path);
                    }

                    
                    $this->removeThumbnail($uid);
                    $wpdb->query("UPDATE `{$wpdb->prefix}kboard_board_content` SET `thumbnail_file`='$file', `thumbnail_name`='$original_name' WHERE `uid`='$uid'");
                }
            }
    }

     

    width 값과 height 값을 수정하시면 이미지 크기를 조절하실 수 있습니다.

    $image_editor->resize(300, 300, true);

    KBoard에 기본적으로 해당 기능을 추가해보겠습니다.

    상세한 설명은 아래 링크를 확인 부탁드립니다^^

    https://codex.wordpress.org/Function_Reference/wp_get_image_editor

    https://codex.wordpress.org/Class_Reference/WP_Image_Editor

워드프레스 에러 기술지원 서비스 전문가에게 맡기세요