画像をアップロードしてサイズを変更し、小さいコピーを作成しようとしています。ただし、2 回目のサイズ変更は行われません。しかし、それは「TRUE」を返します。
私はそれについてさらに質問を見つけましたが、彼らはそのトリックをしませんでした.
$this->image_lib->clear();
すべてのサイズ変更の前に追加- サイズを変更するたびにライブラリをロードしない
- ディレクトリを書き込み可能にする (777)
これは私のコードの問題ではないと思います。
何か不足している場合は、お知らせください。
private function upload_image($id)
{
$config_1['upload_path'] = './public/img/news/';
$config_1['allowed_types'] = 'jpg|png';
$config_1['file_name'] = 'news_item_'.$id.'.jpg';
$config_1['overwrite'] = TRUE;
$config_1['max_size'] = '900';
$config_1['max_width'] = '5000';
$config_1['max_height'] = '5000';
$this->load->library('upload', $config_1);
if ( ! $this->upload->do_upload('image'))
{
$image_data = $this->upload->data();
$this->load->library('image_lib');
$config['image_library'] = 'gd2';
$config['source_image'] = $image_data['full_path'];
$config['maintain_ratio'] = TRUE;
$config['quality'] = 75;
if($image_data['image_width'] > 2000){
$config['width'] = 2000;
$config['height'] = 1500;
}
$this->image_lib->initialize($config);
if ( ! $this->image_lib->resize()){echo $this->image_lib->display_errors();}
$this->image_lib->clear();
//thumb
$config['image_library'] = 'gd2';
$config['source_image'] = $image_data['full_path'];
$config['new_image'] = './public/img/news/thumb/news_item_'.$id.'.jpg';
$config['maintain_ratio'] = TRUE;
$config['quality'] = 75;
$config['width'] = 650;
$config['height'] = 500;
$this->image_lib->initialize($config);
if ( ! $this->image_lib->resize()){echo $this->image_lib->display_errors();}
$this->image_lib->clear();
}
}
解決策
それだけです。! _ atがあってif ( ! $this->upload->do_upload('image'))
はなりません。それは今動作しますありがとう!