diff --git a/lib/Cake/Network/Email/CakeEmail.php b/lib/Cake/Network/Email/CakeEmail.php index 63438bea5..04e4f95a0 100644 --- a/lib/Cake/Network/Email/CakeEmail.php +++ b/lib/Cake/Network/Email/CakeEmail.php @@ -21,6 +21,7 @@ App::uses('Validation', 'Utility'); App::uses('Multibyte', 'I18n'); App::uses('AbstractTransport', 'Network/Email'); +App::uses('File', 'Utility'); App::uses('String', 'Utility'); App::uses('View', 'View'); App::import('I18n', 'Multibyte'); @@ -1359,7 +1360,7 @@ class CakeEmail { if (!empty($fileInfo['contentId'])) { continue; } - $data = $this->readFile($fileInfo['file']); + $data = $this->_readFile($fileInfo['file']); $msg[] = '--' . $boundary; $msg[] = 'Content-Type: ' . $fileInfo['mimetype']; @@ -1383,12 +1384,8 @@ class CakeEmail { * @param string $file The file to read. * @return string File contents in base64 encoding */ - public function readFile($file) { - $handle = fopen($file, 'rb'); - $data = fread($handle, filesize($file)); - $data = chunk_split(base64_encode($data)); - fclose($handle); - return $data; + protected function _readFile($file) { + return File::readAndBase64Encode($file); } /** @@ -1407,7 +1404,7 @@ class CakeEmail { if (empty($fileInfo['contentId'])) { continue; } - $data = $this->readFile($fileInfo['file']); + $data = $this->_readFile($fileInfo['file']); $msg[] = '--' . $boundary; $msg[] = 'Content-Type: ' . $fileInfo['mimetype']; diff --git a/lib/Cake/Utility/File.php b/lib/Cake/Utility/File.php index 828da7fa3..28de23735 100644 --- a/lib/Cake/Utility/File.php +++ b/lib/Cake/Utility/File.php @@ -180,6 +180,21 @@ class File { return trim($data); } +/** + * Read the file contents and return 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; + } + /** * Sets or gets the offset for the currently opened file. *