public static function create($args)
 {
     $uid = self::preDispatch();
     $view = new \OC\Files\View('/' . $uid . '/files');
     $dir = \OCP\Config::getUserValue(\OCP\User::getUser(), 'documents', 'save_path', '/');
     $path = Helper::getNewFileName($view, $dir . '/New Document.odt');
     $content = base64_decode(self::ODT_TEMPLATE);
     if (class_exists('\\OC\\Files\\Type\\TemplateManager')) {
         $manager = \OC_Helper::getFileTemplateManager();
         $templateContent = $manager->getTemplate('application/vnd.oasis.opendocument.text');
         if ($templateContent) {
             $content = $templateContent;
         }
     }
     $view->file_put_contents($path, $content);
 }
 /**
  * @NoAdminRequired
  */
 public function create()
 {
     $view = new View('/' . $this->uid . '/files');
     $dir = $this->settings->getUserValue($this->uid, $this->appName, 'save_path', '/');
     if (!$view->is_dir($dir)) {
         $dir = '/';
     }
     $path = Helper::getNewFileName($view, $dir . '/New Document.odt');
     $content = '';
     if (class_exists('\\OC\\Files\\Type\\TemplateManager')) {
         $manager = \OC_Helper::getFileTemplateManager();
         $content = $manager->getTemplate(Storage::MIMETYPE_LIBREOFFICE_WORDPROCESSOR);
     }
     if (!$content) {
         $content = file_get_contents(dirname(__DIR__) . self::ODT_TEMPLATE_PATH);
     }
     if ($content && $view->file_put_contents($path, $content)) {
         $info = $view->getFileInfo($path);
         $response = array('status' => 'success', 'fileid' => $info['fileid']);
     } else {
         $response = array('status' => 'error', 'message' => (string) $this->l10n->t('Can\'t create document'));
     }
     return $response;
 }
 public static function create($args)
 {
     $uid = self::preDispatch();
     $view = new \OC\Files\View('/' . $uid . '/files');
     $dir = \OCP\Config::getUserValue(\OCP\User::getUser(), 'documents', 'save_path', '/');
     if (!$view->is_dir($dir)) {
         $dir = '/';
     }
     $path = Helper::getNewFileName($view, $dir . '/New Document.odt');
     $content = base64_decode(self::ODT_TEMPLATE);
     if (class_exists('\\OC\\Files\\Type\\TemplateManager')) {
         $manager = \OC_Helper::getFileTemplateManager();
         $templateContent = $manager->getTemplate(Storage::MIMETYPE_LIBREOFFICE_WORDPROCESSOR);
         if ($templateContent) {
             $content = $templateContent;
         }
     }
     if ($view->file_put_contents($path, $content)) {
         $info = $view->getFileInfo($path);
         \OCP\JSON::success(array('fileid' => $info['fileid']));
     } else {
         \OCP\JSON::error(array('message' => Config::getL10n()->t('Can\'t create document')));
     }
 }
Exemple #4
0
    OCP\JSON::error($result);
    return;
}
if (!\OC\Files\Filesystem::file_exists($dir . '/')) {
    $result['data'] = array('message' => (string) $l10n->t('The target folder has been moved or deleted.'), 'code' => 'targetnotfound');
    OCP\JSON::error($result);
    exit;
}
$target = $dir . '/' . $fileName;
if (\OC\Files\Filesystem::file_exists($target)) {
    $result['data'] = array('message' => (string) $l10n->t('The name %s is already used in the folder %s. Please choose a different name.', array($fileName, $dir)));
    OCP\JSON::error($result);
    exit;
}
$success = false;
$templateManager = OC_Helper::getFileTemplateManager();
$mimeType = OC_Helper::getMimetypeDetector()->detectPath($target);
$content = $templateManager->getTemplate($mimeType);
try {
    if ($content) {
        $success = \OC\Files\Filesystem::file_put_contents($target, $content);
    } else {
        $success = \OC\Files\Filesystem::touch($target);
    }
} catch (\Exception $e) {
    $result = ['success' => false, 'data' => ['message' => $e->getMessage()]];
    OCP\JSON::error($result);
    exit;
}
if ($success) {
    $meta = \OC\Files\Filesystem::getFileInfo($target);
 /**
  * @NoAdminRequired
  */
 public function create()
 {
     $mimetype = $this->request->post['mimetype'];
     $view = new View('/' . $this->uid . '/files');
     $dir = $this->settings->getUserValue($this->uid, $this->appName, 'save_path', '/');
     if (!$view->is_dir($dir)) {
         $dir = '/';
     }
     $basename = $this->l10n->t('New Document.odt');
     switch ($mimetype) {
         case 'application/vnd.oasis.opendocument.spreadsheet':
             $basename = $this->l10n->t('New Spreadsheet.ods');
             break;
         case 'application/vnd.oasis.opendocument.presentation':
             $basename = $this->l10n->t('New Presentation.odp');
             break;
         default:
             // to be safe
             $mimetype = 'application/vnd.oasis.opendocument.text';
             break;
     }
     $path = Helper::getNewFileName($view, $dir . '/' . $basename);
     $content = '';
     if (class_exists('\\OC\\Files\\Type\\TemplateManager')) {
         $manager = \OC_Helper::getFileTemplateManager();
         $content = $manager->getTemplate($mimetype);
     }
     if (!$content) {
         $content = file_get_contents(dirname(__DIR__) . self::ODT_TEMPLATE_PATH);
     }
     if ($content && $view->file_put_contents($path, $content)) {
         $info = $view->getFileInfo($path);
         $response = array('status' => 'success', 'fileid' => $info['fileid']);
     } else {
         $response = array('status' => 'error', 'message' => (string) $this->l10n->t('Can\'t create document'));
     }
     return $response;
 }
 /**
  * @NoAdminRequired
  */
 public function create()
 {
     $mimetype = $this->request->post['mimetype'];
     $filename = $this->request->post['filename'];
     $dir = $this->request->post['dir'];
     $view = new View('/' . $this->uid . '/files');
     if (!$dir) {
         $dir = '/';
     }
     $basename = $this->l10n->t('New Document.odt');
     switch ($mimetype) {
         case 'application/vnd.oasis.opendocument.spreadsheet':
             $basename = $this->l10n->t('New Spreadsheet.ods');
             break;
         case 'application/vnd.oasis.opendocument.presentation':
             $basename = $this->l10n->t('New Presentation.odp');
             break;
         default:
             // to be safe
             $mimetype = 'application/vnd.oasis.opendocument.text';
             break;
     }
     if (!$filename) {
         $path = Helper::getNewFileName($view, $dir . '/' . $basename);
     } else {
         $path = $dir . '/' . $filename;
     }
     $content = '';
     if (class_exists('\\OC\\Files\\Type\\TemplateManager')) {
         $manager = \OC_Helper::getFileTemplateManager();
         $content = $manager->getTemplate($mimetype);
     }
     if (!$content) {
         $content = file_get_contents(dirname(__DIR__) . self::ODT_TEMPLATE_PATH);
     }
     $discovery_parsed = null;
     try {
         $discovery = $this->getDiscovery();
         $loadEntities = libxml_disable_entity_loader(true);
         $discovery_parsed = simplexml_load_string($discovery);
         libxml_disable_entity_loader($loadEntities);
         if ($discovery_parsed === false) {
             $this->cache->remove('discovery.xml');
             $wopiRemote = $this->appConfig->getAppValue('wopi_url');
             return array('status' => 'error', 'message' => $this->l10n->t('Collabora Online: discovery.xml from "%s" is not a well-formed XML string.', array($wopiRemote)), 'hint' => $this->l10n->t('Please contact the "%s" administrator.', array($wopiRemote)));
         }
     } catch (ResponseException $e) {
         return array('status' => 'error', 'message' => $e->getMessage(), 'hint' => $e->getHint());
     }
     if ($content && $view->file_put_contents($path, $content)) {
         $info = $view->getFileInfo($path);
         $ret = $this->getWopiSrcUrl($discovery_parsed, $mimetype);
         $response = array('status' => 'success', 'fileid' => $info['fileid'], 'urlsrc' => $ret['urlsrc'], 'action' => $ret['action'], 'lolang' => $this->settings->getUserValue($this->uid, 'core', 'lang', 'en'), 'data' => \OCA\Files\Helper::formatFileInfo($info));
     } else {
         $response = array('status' => 'error', 'message' => (string) $this->l10n->t('Can\'t create document'));
     }
     return $response;
 }