Image_moo & amp; Платформа CodeIgniter не будет генерировать миниатюры

Попытка создания миниатюр с помощью Image_moo & CodeIgniter Framework. Image_moo не выводит никаких ошибок, однако миниатюрные изображения никогда не создаются.

структура dir
приложение
— контроллеры /
admin.php

— библиотеки /
Image_moo.php

— модели /
Admin_photos_model.php

admin.php

public function photo_upload() {

$rules = [
[
'field' => 'caption',
'label' => 'Caption'//,
//'rules' => 'required'
],[
'field' => 'description',
'label' => 'Description'//,
//'rules' => 'required'
],[
'field' => 'series',
'label' => 'Series',
'rules' => 'required'
]
];

$this->form_validation->set_rules($rules);

if ($this->form_validation->run() == FALSE) {
$this->load->view('admin/photos/upload');
} else {
$series = str_replace(' ', '', strtolower($_POST['series']));
$upload_path = './img/photos/'.$series.'/';

$config = [
'upload_path'   => $upload_path, //'./img/photos/'.$series.'/',
'allowed_types' => 'gif|jpg|jpeg|png'
];

$this->load->library('upload', $config);

if (!file_exists($upload_path)) { //check if series dir exists
mkdir($upload_path, 0777, true); // create dir if !exist
$num = 1; //init
} else {
$num = $this->db->where('series', $series)->count_all_results('photos') + 1;
};

if (!$this->upload->do_upload()) {
$error = array('error' => $this->upload->display_errors());
$this->load->view('admin/photos/upload', $error);
} else {
$file = $this->upload->data();
$caption = $_POST['caption'];
$description = $_POST['description'];

$data = [
'filename'      => $file['file_name'],
'series'        => $series,
'num'           => $num,
'caption'       => $caption,
'description'   => $description
];

$this->Admin_photos_model->upload($data);

$this->load->library('image_moo'); //create thumbnail, upload

$file_raw_name = $this->upload->data('raw_name');
$file_ext = $this->upload->data('file_ext');
$file_width = $this->upload->data('image_width');
$file_height = $this->upload->data('image_height');
$file_uploaded = $upload_path.$data['filename']; //$field_info->upload_path.'/'.$uploader_response[0]->name;

if ($file_width > 1024 && $file_height > 720) {
$this->image_moo->load($file_uploaded)
->resize_crop(1024,720)->save($upload_path.$file_raw_name.'_thumb_xl'.$file_ext)
->resize_crop(800,562)->save($upload_path.$file_raw_name.'_thumb_lg'.$file_ext)
->resize_crop(640,450)->save($upload_path.$file_raw_name.'_thumb_med'.$file_ext)
->resize_crop(450,316)->save($upload_path.$file_raw_name.'_thumb_sm'.$file_ext)
->resize_crop(222,156)->save($upload_path.$file_raw_name.'_thumb_xs'.$file_ext);

$data = [
'has_thumb_xl'          => 1,
'has_thumb_lg'          => 1,
'has_thumb_med'         => 1,
'has_thumb_sm'          => 1,
'has_thumb_xs'          => 1,
'thumb_xl_filename'     => $file_raw_name.'_thumb_xl'.$file_ext,
'thumb_lg_filename'     => $file_raw_name.'_thumb_lg'.$file_ext,
'thumb_med_filename'    => $file_raw_name.'_thumb_med'.$file_ext,
'thumb_sm_filename'     => $file_raw_name.'_thumb_sm'.$file_ext,
'thumb_xs_filename'     => $file_raw_name.'_thumb_xs'.$file_ext
];
};

if ($this->image_moo->error) {
print $this->image_moo->display_errors();
};

$this->Admin_photos_model->thumbnails($data);

$this->session->set_flashdata('message','file uploaded: '.$file_uploaded.'New image has been added..'.'series dir: '.$series.'last num of series: '.$num.'thumb:'.$file_raw_name.'_thumb_xl'.$file_ext.'errors: '.$this->image_moo->display_errors());
redirect('admin/photos');
};

Admin_photos_model

<?php
class Admin_photos_model extends CI_Model {
public function __construct(){
$this->load->database();
}
public function upload($data) {
try {
$this->db->insert('photos', $data);
return true;
} catch (Exception $e) {
echo $e->getMessage();
};
}
public function thumbnails($data) {
try {
$this->db->insert('photos', $data);
return true;
} catch (Exception $e) {
echo $e->getMessage();
};
}
}

Пытаясь создать миниатюры, я разделяю фотографии по сериям. Если серия еще не началась, создается новый каталог. В идеале загрузка ‘waterfall.jpg’ с серией ‘nature’ даст:

app
...
public_html/
img/
photos/
nature/
waterfall.jpg
waterfall_thumb_xl.jpg
waterfall_thumb_lg.jpg
waterfall_thumb_med.jpg
waterfall_thumb_sm.jpg
waterfall_thumb_xs.jpg

Любая помощь будет оценена.

0

Решение

При чтении документации image_moo функция сохранения должна иметь значение overwrite = FALSE / TRUE. Это казалось исправлением.

«save ($ x, $ overwrite = FALSE) — Сохраняет измененное изображение (если
применимо) к файлу $ x — поддерживаются JPG, PNG, GIF. Если перезаписать не
запись в файл установки может завершиться неудачно. Сохраненный файл будет зависеть от
обработка, выполненная для изображения, или простая копия, если ничего не было
сделанный.»

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]