From 4a4ca7c8d40fb94b50740a6998f9238b7f7b4f5b Mon Sep 17 00:00:00 2001
From: J Miller <j@jmillerdesign.com>
Date: Thu, 16 May 2013 18:56:46 -0700
Subject: [PATCH] Make readBase64 an instance method

Leverage the existing code in File::read() and simply add in chunking and base64 encoding.
---
 lib/Cake/Network/Email/CakeEmail.php |  3 ++-
 lib/Cake/Utility/File.php            | 11 +++--------
 2 files changed, 5 insertions(+), 9 deletions(-)

diff --git a/lib/Cake/Network/Email/CakeEmail.php b/lib/Cake/Network/Email/CakeEmail.php
index 04e4f95a0..fc818f3e2 100644
--- a/lib/Cake/Network/Email/CakeEmail.php
+++ b/lib/Cake/Network/Email/CakeEmail.php
@@ -1385,7 +1385,8 @@ class CakeEmail {
  * @return string File contents in base64 encoding
  */
 	protected function _readFile($file) {
-		return File::readAndBase64Encode($file);
+		$f = new File($file);
+		return $f->readBase64();
 	}
 
 /**
diff --git a/lib/Cake/Utility/File.php b/lib/Cake/Utility/File.php
index 28de23735..2af2812f6 100644
--- a/lib/Cake/Utility/File.php
+++ b/lib/Cake/Utility/File.php
@@ -181,18 +181,13 @@ class File {
 	}
 
 /**
- * Read the file contents and return a base64 version of the file contents.
+ * Return the contents of this File as a base64 version of the file contents.
  *
- * @param string $file The file to read.
  * @return string File contents in base64 encoding
  * @link http://book.cakephp.org/2.0/en/core-utility-libraries/file-folder.html#File::readAndBase64Encode
  */
-	public static function readAndBase64Encode($file) {
-		$handle = fopen($file, 'rb');
-		$data = fread($handle, filesize($file));
-		$data = chunk_split(base64_encode($data));
-		fclose($handle);
-		return $data;
+	public function readBase64() {
+		return chunk_split(base64_encode($this->read()));
 	}
 
 /**