diff options
Diffstat (limited to 'apps/files/ajax/newfile.php')
-rw-r--r-- | apps/files/ajax/newfile.php | 35 |
1 files changed, 24 insertions, 11 deletions
diff --git a/apps/files/ajax/newfile.php b/apps/files/ajax/newfile.php index 8548fc95ddf..d224e79d01b 100644 --- a/apps/files/ajax/newfile.php +++ b/apps/files/ajax/newfile.php @@ -54,6 +54,8 @@ function progress($notification_code, $severity, $message, $message_code, $bytes } } +$target = $dir.'/'.$filename; + if($source) { if(substr($source, 0, 8)!='https://' and substr($source, 0, 7)!='http://') { OCP\JSON::error(array("data" => array( "message" => "Not a valid source" ))); @@ -62,7 +64,6 @@ if($source) { $ctx = stream_context_create(null, array('notification' =>'progress')); $sourceStream=fopen($source, 'rb', false, $ctx); - $target=$dir.'/'.$filename; $result=\OC\Files\Filesystem::file_put_contents($target, $sourceStream); if($result) { $meta = \OC\Files\Filesystem::getFileInfo($target); @@ -75,20 +76,32 @@ if($source) { $eventSource->close(); exit(); } else { + $success = false; + if (!$content) { + $templateManager = OC_Helper::getFileTemplateManager(); + $mimeType = OC_Helper::getMimeType($target); + $content = $templateManager->getTemplate($mimeType); + } + if($content) { - if(\OC\Files\Filesystem::file_put_contents($dir.'/'.$filename, $content)) { - $meta = \OC\Files\Filesystem::getFileInfo($dir.'/'.$filename); - $id = $meta['fileid']; - OCP\JSON::success(array("data" => array('content'=>$content, 'id' => $id))); - exit(); - } - }elseif(\OC\Files\Filesystem::touch($dir . '/' . $filename)) { - $meta = \OC\Files\Filesystem::getFileInfo($dir.'/'.$filename); + $success = \OC\Files\Filesystem::file_put_contents($target, $content); + } else { + $success = \OC\Files\Filesystem::touch($target); + } + + if($success) { + $meta = \OC\Files\Filesystem::getFileInfo($target); $id = $meta['fileid']; - OCP\JSON::success(array("data" => array('content'=>$content, 'id' => $id, 'mime' => $meta['mimetype']))); + $mime = $meta['mimetype']; + $size = $meta['size']; + OCP\JSON::success(array('data' => array( + 'id' => $id, + 'mime' => $mime, + 'size' => $size, + 'content' => $content, + ))); exit(); } } - OCP\JSON::error(array("data" => array( "message" => "Error when creating the file" ))); |