summaryrefslogtreecommitdiffstats
path: root/apps
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
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')
-rw-r--r--apps/files/ajax/newfile.php121
-rw-r--r--apps/files/js/file-upload.js54
-rw-r--r--apps/files/templates/list.php3
3 files changed, 15 insertions, 163 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') )));
diff --git a/apps/files/js/file-upload.js b/apps/files/js/file-upload.js
index 7374a4c90f3..4e0b9e0e6d1 100644
--- a/apps/files/js/file-upload.js
+++ b/apps/files/js/file-upload.js
@@ -602,9 +602,7 @@ OC.Upload = {
var lastPos;
var checkInput = function () {
var filename = input.val();
- if (type === 'web' && filename.length === 0) {
- throw t('files', 'URL cannot be empty');
- } else if (type !== 'web' && ! Files.isFileNameValid(filename)) {
+ if (Files.isFileNameValid(filename)) {
// Files.isFileNameValid(filename) throws an exception itself
} else if (FileList.inList(filename)) {
throw t('files', '{new_name} already exists', {new_name: filename});
@@ -683,56 +681,6 @@ OC.Upload = {
}
);
break;
- case 'web':
- if (name.substr(0, 8) !== 'https://' && name.substr(0, 7) !== 'http://') {
- name = 'http://' + name;
- }
- var localName = name;
- if (localName.substr(localName.length-1, 1) === '/') {//strip /
- localName = localName.substr(0, localName.length-1);
- }
- if (localName.indexOf('/')) { //use last part of url
- localName = localName.split('/').pop();
- } else { //or the domain
- localName = (localName.match(/:\/\/(.[^\/]+)/)[1]).replace('www.', '');
- }
- localName = FileList.getUniqueName(localName);
- //IE < 10 does not fire the necessary events for the progress bar.
- if ($('html.lte9').length === 0) {
- $('#uploadprogressbar').progressbar({value: 0});
- OC.Upload._showProgressBar();
- }
-
- var eventSource = new OC.EventSource(
- OC.filePath('files', 'ajax', 'newfile.php'),
- {
- dir: FileList.getCurrentDirectory(),
- source: name,
- filename: localName
- }
- );
- eventSource.listen('progress', function(progress) {
- //IE < 10 does not fire the necessary events for the progress bar.
- if ($('html.lte9').length === 0) {
- $('#uploadprogressbar').progressbar('value',progress);
- }
- });
- eventSource.listen('success', function(data) {
- var file = data;
- OC.Upload._hideProgressBar();
-
- FileList.add(file, {hidden: hidden, animate: true});
- });
- eventSource.listen('error', function(error) {
- OC.Upload._hideProgressBar();
- var message = (error && error.message) || t('core', 'Error fetching URL');
- OC.Notification.show(message);
- //hide notification after 10 sec
- setTimeout(function() {
- OC.Notification.hide();
- }, 10000);
- });
- break;
}
var li = form.parent();
form.remove();
diff --git a/apps/files/templates/list.php b/apps/files/templates/list.php
index aa879002baa..f2292bfae36 100644
--- a/apps/files/templates/list.php
+++ b/apps/files/templates/list.php
@@ -12,9 +12,6 @@
data-type="folder" data-newname="<?php p($l->t('New folder')) ?>">
<p><?php p($l->t('Folder'));?></p>
</li>
- <li class="icon-link svg" data-type="web">
- <p><?php p($l->t('From link'));?></p>
- </li>
</ul>
</div>
<?php endif;?>