Четверг, 26 Мар 2015 в 0:42

Загрузить большие изображения в OpenCart

Автор: admin

По умолчанию в OpenCart установлено ограничение на загрузку изображений с размером файла больше 300Кб и разрешением больше чем 1000 на 1000 пикселей.

Загрузить большие изображения в OpenCart


Но, хочется чего-то большего. Так что поправим некоторые модули в админке.

Изменения в файлах

Для снятия ограничения на размер файла изменим контроллер admin/controller/common/filemanager.php

Находим строки:

if ($this->request->files['image']['size'] > 300000) {
$json['error'] = $this->language->get('error_file_size');
}

и изменяем в них значение 300000, а это именно размер в байтах, на то, который нам нужен «в байтах». В  случае 3Мб = 3145728 байт. Теперь код выглядит вот так:

if ($this->request->files['image']['size'] > 3145728) {
$json['error'] = $this->language->get('error_file_size');
}

Для снятия ограничения на размер изображения 1000 на 1000 пикселей (в последних версия Opencart не актуально, там уже это ограничение отсутствует)

if (!isset($json['error'])) {
	if(substr($this->request->files['image']['type'],0,5)=='image'){
		$imageinfo = getimagesize($this->request->files['image']['tmp_name']);
		if($imageinfo[0]>1000 || $imageinfo[1]>1000){
			exec('convert -colorspace RGB "'.$this->request->files['image']['tmp_name'].'" -resize 1000x1000 "'.$this->request->files['image']['tmp_name'].'"');
		}
	}
	if (@move_uploaded_file($this->request->files['image']['tmp_name'], $directory . '/' . basename($this->request->files['image']['name']))) {
		$json['success'] = $this->language->get('text_uploaded');
	} else {
		$json['error'] = $this->language->get('error_uploaded');
	}
}

изменяем значения $imageinfo[0]>1000 || $imageinfo[1]>1000 на нужные.

Ваш отзыв

Цитаты великих

"На примере трубок можно наглядно доказать, что дым без огня очень даже бывает."

Диана Уинн Джонс

Я в Контакте