diff options
Diffstat (limited to 'engine/lib/filestore.php')
-rw-r--r-- | engine/lib/filestore.php | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/engine/lib/filestore.php b/engine/lib/filestore.php index 0ade1e906..cecb8d99a 100644 --- a/engine/lib/filestore.php +++ b/engine/lib/filestore.php @@ -164,8 +164,12 @@ case "append" : $mode = "a+b"; break; default: throw new InvalidParameterException(sprintf(elgg_echo('InvalidParameterException:UnrecognisedFileMode'), $mode)); } - - return fopen($fullname, $mode); +
+ if (file_exists($fullname)) { + return fopen($fullname, $mode);
+ } else {
+ return false;
+ } } public function write($f, $data) @@ -232,7 +236,8 @@ * @param string $dirroot */ protected function make_directory_root($dirroot) - { + {
+ if (!file_exists($dirroot)) if (!@mkdir($dirroot, 0700, true)) throw new IOException(sprintf(elgg_echo('IOException:CouldNotMake'), $dirroot)); |