]> source.dussan.org Git - nextcloud-server.git/commitdiff
Remove "Download from URL" feature
authorLukas Reschke <lukas@owncloud.com>
Mon, 2 Mar 2015 20:06:25 +0000 (21:06 +0100)
committerLukas Reschke <lukas@owncloud.com>
Mon, 2 Mar 2015 20:06:25 +0000 (21:06 +0100)
Fixes https://github.com/owncloud/core/issues/13326

apps/files/ajax/newfile.php
apps/files/js/file-upload.js
apps/files/templates/list.php

index 4f5d102b40460b60e588ea7fdc82def8338f3745..ba54ca35f7cc20d50d294f4b013295e92ca94d17 100644 (file)
@@ -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') )));
index 7374a4c90f3858136a57faccabde11cd4b59ad4e..4e0b9e0e6d160531a43c56c89fd5280931d97030 100644 (file)
@@ -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();
index aa879002baa47c0e0ce5431e04b3f9e8e5f803b8..f2292bfae369c5232cba9a355ac867c5a56bae85 100644 (file)
@@ -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;?>