From 541ddbd6f3c0231f0e7fc0a18d9d54670a808958 Mon Sep 17 00:00:00 2001
From: Derek Jones
Date: Tue, 9 Dec 2008 15:25:31 +0000
Subject: added some better error checking for saving files with GD
---
system/language/english/imglib_lang.php | 1 +
system/libraries/Image_lib.php | 18 +++++++++++++++---
user_guide/changelog.html | 1 +
3 files changed, 17 insertions(+), 3 deletions(-)
diff --git a/system/language/english/imglib_lang.php b/system/language/english/imglib_lang.php
index a587c0b9e..66505da07 100644
--- a/system/language/english/imglib_lang.php
+++ b/system/language/english/imglib_lang.php
@@ -17,6 +17,7 @@ $lang['imglib_writing_failed_gif'] = "GIF image.";
$lang['imglib_invalid_path'] = "The path to the image is not correct.";
$lang['imglib_copy_failed'] = "The image copy routine failed.";
$lang['imglib_missing_font'] = "Unable to find a font to use.";
+$lang['imglib_save_failed'] = "Unable to save the image. Please make sure the image and file directory are writable.";
/* End of file imglib_lang.php */
diff --git a/system/libraries/Image_lib.php b/system/libraries/Image_lib.php
index 1b2d33de8..0e7f21435 100644
--- a/system/libraries/Image_lib.php
+++ b/system/libraries/Image_lib.php
@@ -1195,7 +1195,11 @@ class CI_Image_lib {
return FALSE;
}
- @imagegif($resource, $this->full_dst_path);
+ if ( ! @imagegif($resource, $this->full_dst_path))
+ {
+ $this->set_error('imglib_save_failed');
+ return FALSE;
+ }
break;
case 2 :
if ( ! function_exists('imagejpeg'))
@@ -1209,7 +1213,11 @@ class CI_Image_lib {
@touch($this->full_dst_path); // PHP 4.4.1 bug #35060 - workaround
}
- @imagejpeg($resource, $this->full_dst_path, $this->quality);
+ if ( ! @imagejpeg($resource, $this->full_dst_path, $this->quality))
+ {
+ $this->set_error('imglib_save_failed');
+ return FALSE;
+ }
break;
case 3 :
if ( ! function_exists('imagepng'))
@@ -1218,7 +1226,11 @@ class CI_Image_lib {
return FALSE;
}
- @imagepng($resource, $this->full_dst_path);
+ if ( ! @imagepng($resource, $this->full_dst_path))
+ {
+ $this->set_error('imglib_save_failed');
+ return FALSE;
+ }
break;
default :
$this->set_error(array('imglib_unsupported_imagecreate'));
diff --git a/user_guide/changelog.html b/user_guide/changelog.html
index 3dd056d06..9c09fabf2 100644
--- a/user_guide/changelog.html
+++ b/user_guide/changelog.html
@@ -69,6 +69,7 @@ SVN Revision:
Added <big>, <small>, <q>, and <tt> to the Typography parser's inline elements.
Added more accurate error reporting for the Email library when using sendmail.
Removed a strict type check from the rotate() function of the Image Manipulation Class.
+ Added enhanced error checking in file saving in the Image library when using the GD lib.
Database
--
cgit v1.2.3-24-g4f1b