Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Create method readAndBase64Encode() in File utility.

Move this utility method out of CakeEmail, which allows other Mail transports to encode files manually. Maintains BC.
  • Loading branch information...
commit dfdde954ea9d278420cd64cb2576f3f67f9764dc 1 parent f47609b
@jmillerdesign jmillerdesign authored
Showing with 20 additions and 8 deletions.
  1. +5 −8 lib/Cake/Network/Email/CakeEmail.php
  2. +15 −0 lib/Cake/Utility/File.php
View
13 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 @@ protected function _attachFiles($boundary = null) {
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 @@ protected function _attachFiles($boundary = null) {
* @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 @@ protected function _attachInlineFiles($boundary = null) {
if (empty($fileInfo['contentId'])) {
continue;
}
- $data = $this->readFile($fileInfo['file']);
+ $data = $this->_readFile($fileInfo['file']);
$msg[] = '--' . $boundary;
$msg[] = 'Content-Type: ' . $fileInfo['mimetype'];
View
15 lib/Cake/Utility/File.php
@@ -181,6 +181,21 @@ public function read($bytes = false, $mode = 'rb', $force = false) {
}
/**
+ * 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.
*
* @param integer|boolean $offset The $offset in bytes to seek. If set to false then the current offset is returned.
Please sign in to comment.
Something went wrong with that request. Please try again.