diff options
author | Lukas Reschke <lukas@owncloud.com> | 2015-03-02 21:06:25 +0100 |
---|---|---|
committer | Lukas Reschke <lukas@owncloud.com> | 2015-03-02 21:06:25 +0100 |
commit | acabd81f42457d1a4c9e12663e2c65bd558c1896 (patch) | |
tree | 770e627669b5e13e1e4eb313c5155e2c929239cb /apps/files/ajax | |
parent | 1155ad6e389e47e110a415f22eddda1570dc9ff2 (diff) | |
download | nextcloud-server-acabd81f42457d1a4c9e12663e2c65bd558c1896.tar.gz nextcloud-server-acabd81f42457d1a4c9e12663e2c65bd558c1896.zip |
Remove "Download from URL" feature
Fixes https://github.com/owncloud/core/issues/13326
Diffstat (limited to 'apps/files/ajax')
-rw-r--r-- | apps/files/ajax/newfile.php | 121 |
1 files changed, 14 insertions, 107 deletions
diff --git a/apps/files/ajax/newfile.php b/apps/files/ajax/newfile.php index 4f5d102b404..ba54ca35f7c 100644 --- a/apps/files/ajax/newfile.php +++ b/apps/files/ajax/newfile.php @@ -12,37 +12,6 @@ global $eventSource; $dir = isset( $_REQUEST['dir'] ) ? '/'.trim((string)$_REQUEST['dir'], '/\\') : ''; $filename = isset( $_REQUEST['filename'] ) ? trim((string)$_REQUEST['filename'], '/\\') : ''; $content = isset( $_REQUEST['content'] ) ? (string)$_REQUEST['content'] : ''; -$source = isset( $_REQUEST['source'] ) ? trim((string)$_REQUEST['source'], '/\\') : ''; - -if($source) { - $eventSource = \OC::$server->createEventSource(); -} - -function progress($notification_code, $severity, $message, $message_code, $bytes_transferred, $bytes_max) { - static $filesize = 0; - static $lastsize = 0; - global $eventSource; - - switch($notification_code) { - case STREAM_NOTIFY_FILE_SIZE_IS: - $filesize = $bytes_max; - break; - - case STREAM_NOTIFY_PROGRESS: - if ($bytes_transferred > 0) { - if (!isset($filesize) || $filesize === 0) { - } else { - $progress = (int)(($bytes_transferred/$filesize)*100); - if($progress>$lastsize) { //limit the number or messages send - $eventSource->send('progress', $progress); - } - $lastsize=$progress; - } - } - break; - } -} - $l10n = \OC::$server->getL10N('files'); @@ -89,85 +58,23 @@ if (\OC\Files\Filesystem::file_exists($target)) { exit(); } -if($source) { - $httpHelper = \OC::$server->getHTTPHelper(); - if(!$httpHelper->isHTTPURL($source)) { - OCP\JSON::error(array('data' => array('message' => $l10n->t('Not a valid source')))); - exit(); - } - - if (!ini_get('allow_url_fopen')) { - $eventSource->send('error', array('message' => $l10n->t('Server is not allowed to open URLs, please check the server configuration'))); - $eventSource->close(); - exit(); - } - - $source = $httpHelper->getFinalLocationOfURL($source); - - $ctx = stream_context_create(\OC::$server->getHTTPHelper()->getDefaultContextArray(), array('notification' =>'progress')); - - $sourceStream=@fopen($source, 'rb', false, $ctx); - $result = 0; - if (is_resource($sourceStream)) { - $meta = stream_get_meta_data($sourceStream); - if (isset($meta['wrapper_data']) && is_array($meta['wrapper_data'])) { - //check stream size - $storageStats = \OCA\Files\Helper::buildFileStorageStatistics($dir); - $freeSpace = $storageStats['freeSpace']; - - foreach($meta['wrapper_data'] as $header) { - if (strpos($header, ':') === false){ - continue; - } - list($name, $value) = explode(':', $header); - if ('content-length' === strtolower(trim($name))) { - $length = (int) trim($value); - - if ($length > $freeSpace) { - $delta = $length - $freeSpace; - $humanDelta = OCP\Util::humanFileSize($delta); +$success = false; +if (!$content) { + $templateManager = OC_Helper::getFileTemplateManager(); + $mimeType = OC_Helper::getMimetypeDetector()->detectPath($target); + $content = $templateManager->getTemplate($mimeType); +} - $eventSource->send('error', array('message' => (string)$l10n->t('The file exceeds your quota by %s', array($humanDelta)))); - $eventSource->close(); - fclose($sourceStream); - exit(); - } - } - } - } - $result = \OC\Files\Filesystem::file_put_contents($target, $sourceStream); - } - if($result) { - $meta = \OC\Files\Filesystem::getFileInfo($target); - $data = \OCA\Files\Helper::formatFileInfo($meta); - $eventSource->send('success', $data); - } else { - $eventSource->send('error', array('message' => $l10n->t('Error while downloading %s to %s', array($source, $target)))); - } - if (is_resource($sourceStream)) { - fclose($sourceStream); - } - $eventSource->close(); - exit(); +if($content) { + $success = \OC\Files\Filesystem::file_put_contents($target, $content); } else { - $success = false; - if (!$content) { - $templateManager = OC_Helper::getFileTemplateManager(); - $mimeType = OC_Helper::getMimetypeDetector()->detectPath($target); - $content = $templateManager->getTemplate($mimeType); - } - - if($content) { - $success = \OC\Files\Filesystem::file_put_contents($target, $content); - } else { - $success = \OC\Files\Filesystem::touch($target); - } + $success = \OC\Files\Filesystem::touch($target); +} - if($success) { - $meta = \OC\Files\Filesystem::getFileInfo($target); - OCP\JSON::success(array('data' => \OCA\Files\Helper::formatFileInfo($meta))); - exit(); - } +if($success) { + $meta = \OC\Files\Filesystem::getFileInfo($target); + OCP\JSON::success(array('data' => \OCA\Files\Helper::formatFileInfo($meta))); + exit(); } OCP\JSON::error(array('data' => array( 'message' => $l10n->t('Error when creating the file') ))); |