OpenCart’s default image upload size is 300KB and that is simply too small for clients that don’t have the knowledge to resize their images before uploading them. Although uploading digital camera images does use more bandwidth, sometimes it can not be avoided. To adjust the image upload size make the following changes around line 446 of admin/controller/common/filemanager.php
:
if ($this->request->files['image']['size'] > 10485760) {
$json['error'] = $this->language->get('error_file_size');
}
In this case we have increased the upload size limit to 10MB, also make sure that your php configuration will allow file uploads and posts of this size.
Now you have these big images uploaded, but sometimes GD can run out of memory trying to resize these large images. You can solve this by using imagemagick, if available. So what we’re going to do is resize all images larger than 1000×1000 down to 1000×1000. Make the following changes around line 490 of admin/controller/common/filemanager.php
:
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');
}
}
That’s it, your image upload file size limit has been lifted and memory usage issues have been dealt with!