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 +++++++++++++++--- 2 files changed, 16 insertions(+), 3 deletions(-) (limited to 'system') 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')); -- cgit v1.2.3-24-g4f1b