diff options
author | Thomas Müller <thomas.mueller@tmit.eu> | 2013-08-16 00:13:10 +0200 |
---|---|---|
committer | Thomas Müller <thomas.mueller@tmit.eu> | 2013-08-16 00:13:10 +0200 |
commit | 7279a07ca20949cf3cee82faf064d6aae8cf0a99 (patch) | |
tree | 01d912d1743db2e34225383d3f8b9783c9b6e295 /apps/files/ajax/newfile.php | |
parent | d91104e120d570eaf3d80c23c5caf6b597b24db7 (diff) | |
parent | bd1895bdf8dff07bf9dc9803ce991e39daa52acc (diff) | |
download | nextcloud-server-7279a07ca20949cf3cee82faf064d6aae8cf0a99.tar.gz nextcloud-server-7279a07ca20949cf3cee82faf064d6aae8cf0a99.zip |
Merge branch 'master' into mimetype-defaults
Conflicts:
apps/files/ajax/newfile.php
Diffstat (limited to 'apps/files/ajax/newfile.php')
-rw-r--r-- | apps/files/ajax/newfile.php | 89 |
1 files changed, 48 insertions, 41 deletions
diff --git a/apps/files/ajax/newfile.php b/apps/files/ajax/newfile.php index 21db0a7834b..8f5b1d98c3e 100644 --- a/apps/files/ajax/newfile.php +++ b/apps/files/ajax/newfile.php @@ -3,29 +3,29 @@ // Init owncloud global $eventSource; -if (!OC_User::isLoggedIn()) { +if(!OC_User::isLoggedIn()) { exit; } session_write_close(); // Get the params -$dir = isset($_REQUEST['dir']) ? '/' . trim($_REQUEST['dir'], '/\\') : ''; -$filename = isset($_REQUEST['filename']) ? trim($_REQUEST['filename'], '/\\') : ''; -$content = isset($_REQUEST['content']) ? $_REQUEST['content'] : ''; -$source = isset($_REQUEST['source']) ? trim($_REQUEST['source'], '/\\') : ''; +$dir = isset( $_REQUEST['dir'] ) ? '/'.trim($_REQUEST['dir'], '/\\') : ''; +$filename = isset( $_REQUEST['filename'] ) ? trim($_REQUEST['filename'], '/\\') : ''; +$content = isset( $_REQUEST['content'] ) ? $_REQUEST['content'] : ''; +$source = isset( $_REQUEST['source'] ) ? trim($_REQUEST['source'], '/\\') : ''; -if ($source) { - $eventSource = new OC_EventSource(); +if($source) { + $eventSource=new OC_EventSource(); } else { OC_JSON::callCheck(); } -if ($filename == '') { - OCP\JSON::error(array("data" => array("message" => "Empty Filename"))); +if($filename == '') { + OCP\JSON::error(array("data" => array( "message" => "Empty Filename" ))); exit(); } -if (strpos($filename, '/') !== false) { - OCP\JSON::error(array("data" => array("message" => "Invalid Filename"))); +if(strpos($filename, '/')!==false) { + OCP\JSON::error(array("data" => array( "message" => "Invalid Filename" ))); exit(); } @@ -34,7 +34,7 @@ function progress($notification_code, $severity, $message, $message_code, $bytes static $lastsize = 0; global $eventSource; - switch ($notification_code) { + switch($notification_code) { case STREAM_NOTIFY_FILE_SIZE_IS: $filesize = $bytes_max; break; @@ -43,56 +43,63 @@ function progress($notification_code, $severity, $message, $message_code, $bytes if ($bytes_transferred > 0) { if (!isset($filesize)) { } else { - $progress = (int)(($bytes_transferred / $filesize) * 100); - if ($progress > $lastsize) { //limit the number or messages send + $progress = (int)(($bytes_transferred/$filesize)*100); + if($progress>$lastsize) {//limit the number or messages send $eventSource->send('progress', $progress); } - $lastsize = $progress; + $lastsize=$progress; } } break; } } -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"))); +$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" ))); exit(); } - $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) { + $ctx = stream_context_create(null, array('notification' =>'progress')); + $sourceStream=fopen($source, 'rb', false, $ctx); + $result=\OC\Files\Filesystem::file_put_contents($target, $sourceStream); + if($result) { $meta = \OC\Files\Filesystem::getFileInfo($target); - $mime = $meta['mimetype']; + $mime=$meta['mimetype']; $id = $meta['fileid']; - $eventSource->send('success', array('mime' => $mime, 'size' => \OC\Files\Filesystem::filesize($target), 'id' => $id)); + $eventSource->send('success', array('mime'=>$mime, 'size'=>\OC\Files\Filesystem::filesize($target), 'id' => $id)); } else { - $eventSource->send('error', "Error while downloading " . $source . ' to ' . $target); + $eventSource->send('error', "Error while downloading ".$source. ' to '.$target); } $eventSource->close(); exit(); } else { - 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 = false; + if (!$content) { $templateManager = OC_Helper::getFileTemplateManager(); - if ($content = $templateManager->getTemplate($meta['mimetype'])) { - \OC\Files\Filesystem::file_put_contents($dir . '/' . $filename, $content); - } + $mimeType = OC_Helper::getMimeType($target); + $content = $templateManager->getTemplate($mimeType); + } + + if($content) { + $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']; + OCP\JSON::success(array('data' => array( + 'id' => $id, + 'mime' => $mime, + 'content' => $content, + ))); exit(); } } - -OCP\JSON::error(array("data" => array("message" => "Error when creating the file"))); +OCP\JSON::error(array("data" => array( "message" => "Error when creating the file" ))); |