public function remote()
 {
     $url = $this->getRequestParam('url', '');
     $filename = $this->getRequestParam('filename', '');
     $folder = $this->getRequestParam('folder', NULL);
     $response = new AjaxResponse();
     if (!DOWNLOAD_VIA_SERVER) {
         $response->success = false;
         $response->message = System::getLanguage()->_('ErrorFeatureDisabled');
         echo $response;
         exit;
     }
     try {
         if (!empty($url) && !empty($filename)) {
             $folder = Folder::find('_id', $folder);
             if ($folder == NULL) {
                 throw new FolderNotFoundException();
             }
             $file = new File();
             $file->filename = $filename;
             $file->folder = $folder;
             $file->remote($url);
             $file->save();
             $response->success = true;
             $response->data = $file->toJSON();
         } else {
             throw new Exception();
         }
     } catch (UploadException $e) {
         $response->success = false;
         $response->message = $e->getMessage();
     } catch (QuotaExceededException $e) {
         $response->success = false;
         $response->message = System::getLanguage()->_('ErrorQuotaExceeded');
     } catch (Exception $e) {
         $response->success = false;
         $response->message = System::getLanguage()->_('ErrorInvalidParameter');
     }
     $response->send();
 }