diff options
Diffstat (limited to 'apps/files/ajax/newfile.php')
-rw-r--r-- | apps/files/ajax/newfile.php | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/apps/files/ajax/newfile.php b/apps/files/ajax/newfile.php index 495c8212163..b87079f2712 100644 --- a/apps/files/ajax/newfile.php +++ b/apps/files/ajax/newfile.php @@ -8,12 +8,11 @@ if(!OC_User::isLoggedIn()) { } session_write_close(); - // Get the params -$dir = isset( $_REQUEST['dir'] ) ? stripslashes($_REQUEST['dir']) : ''; -$filename = isset( $_REQUEST['filename'] ) ? stripslashes($_REQUEST['filename']) : ''; +$dir = isset( $_REQUEST['dir'] ) ? '/'.trim($_REQUEST['dir'], '/\\') : ''; +$filename = isset( $_REQUEST['filename'] ) ? trim($_REQUEST['filename'], '/\\') : ''; $content = isset( $_REQUEST['content'] ) ? $_REQUEST['content'] : ''; -$source = isset( $_REQUEST['source'] ) ? stripslashes($_REQUEST['source']) : ''; +$source = isset( $_REQUEST['source'] ) ? trim($_REQUEST['source'], '/\\') : ''; if($source) { $eventSource=new OC_EventSource(); @@ -66,8 +65,10 @@ if($source) { $target=$dir.'/'.$filename; $result=OC_Filesystem::file_put_contents($target, $sourceStream); if($result) { - $mime=OC_Filesystem::getMimetype($target); - $eventSource->send('success', array('mime'=>$mime, 'size'=>OC_Filesystem::filesize($target))); + $meta = OC_FileCache::get($target); + $mime=$meta['mimetype']; + $id = OC_FileCache::getId($target); + $eventSource->send('success', array('mime'=>$mime, 'size'=>OC_Filesystem::filesize($target), 'id' => $id)); } else { $eventSource->send('error', "Error while downloading ".$source. ' to '.$target); } @@ -76,11 +77,15 @@ if($source) { } else { if($content) { if(OC_Filesystem::file_put_contents($dir.'/'.$filename, $content)) { - OCP\JSON::success(array("data" => array('content'=>$content))); + $meta = OC_FileCache::get($dir.'/'.$filename); + $id = OC_FileCache::getId($dir.'/'.$filename); + OCP\JSON::success(array("data" => array('content'=>$content, 'id' => $id))); exit(); } }elseif(OC_Files::newFile($dir, $filename, 'file')) { - OCP\JSON::success(array("data" => array('content'=>$content))); + $meta = OC_FileCache::get($dir.'/'.$filename); + $id = OC_FileCache::getId($dir.'/'.$filename); + OCP\JSON::success(array("data" => array('content'=>$content, 'id' => $id))); exit(); } } |