summaryrefslogtreecommitdiffstats
path: root/apps/files/ajax
diff options
context:
space:
mode:
authorLukas Reschke <lukas@owncloud.com>2015-03-02 21:06:25 +0100
committerLukas Reschke <lukas@owncloud.com>2015-03-02 21:06:25 +0100
commitacabd81f42457d1a4c9e12663e2c65bd558c1896 (patch)
tree770e627669b5e13e1e4eb313c5155e2c929239cb /apps/files/ajax
parent1155ad6e389e47e110a415f22eddda1570dc9ff2 (diff)
downloadnextcloud-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.php121
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') )));