public static function zipAddDir($dir, $zip, $internalDir = '') { $dirname = basename($dir); $zip->addEmptyDir($internalDir . $dirname); $internalDir .= $dirname .= '/'; $files = OC_Files::getdirectorycontent($dir); foreach ($files as $file) { $filename = $file['name']; $file = $dir . '/' . $filename; if (OC_Filesystem::is_file($file)) { $tmpFile = OC_Filesystem::toTmpFile($file); OC_Files::$tmpFiles[] = $tmpFile; $zip->addFile($tmpFile, $internalDir . $filename); } elseif (OC_Filesystem::is_dir($file)) { self::zipAddDir($file, $zip, $internalDir); } } }
OC_Util::setupFS($user); $source = substr($source, strlen("/" . $user . "/files")); $subPath = isset($_GET['path']) ? $_GET['path'] : ''; $root = $source; $source .= $subPath; if (!OC_Filesystem::file_exists($source)) { header("HTTP/1.0 404 Not Found"); $tmpl = new OC_Template("", "404", "guest"); $tmpl->assign("file", $subPath); $tmpl->printPage(); exit; } if (OC_Filesystem::is_dir($source)) { $files = array(); $rootLength = strlen($root); foreach (OC_Files::getdirectorycontent($source) as $i) { $i['date'] = OC_Util::formatDate($i['mtime']); if ($i['type'] == 'file') { $fileinfo = pathinfo($i['name']); $i['basename'] = $fileinfo['filename']; $i['extention'] = isset($fileinfo['extension']) ? '.' . $fileinfo['extension'] : ''; } $i['directory'] = substr($i['directory'], $rootLength); if ($i['directory'] == "/") { $i['directory'] = ""; } $files[] = $i; } // Make breadcrumb $breadcrumb = array(); $pathtohere = "";
$RUNTIME_APPTYPES = array('filesystem'); // Init owncloud OCP\JSON::checkLoggedIn(); // Load the files $dir = isset($_GET['dir']) ? $_GET['dir'] : ''; $doBreadcrumb = isset($_GET['breadcrumb']) ? true : false; $data = array(); // Make breadcrumb if ($doBreadcrumb) { $breadcrumb = array(); $pathtohere = "/"; foreach (explode("/", $dir) as $i) { if ($i != "") { $pathtohere .= "{$i}/"; $breadcrumb[] = array("dir" => $pathtohere, "name" => $i); } } $breadcrumbNav = new OCP\Template("files", "part.breadcrumb", ""); $breadcrumbNav->assign("breadcrumb", $breadcrumb); $data['breadcrumb'] = $breadcrumbNav->fetchPage(); } // make filelist $files = array(); foreach (OC_Files::getdirectorycontent($dir) as $i) { $i["date"] = OCP\Util::formatDate($i["mtime"]); $files[] = $i; } $list = new OCP\Template("files", "part.list", ""); $list->assign("files", $files, false); $data = array('files' => $list->fetchPage()); OCP\JSON::success(array('data' => $data));
<?php // only need filesystem apps $RUNTIME_APPTYPES = array('filesystem'); // Init owncloud require_once 'lib/template.php'; OCP\JSON::checkLoggedIn(); // Load the files $dir = isset($_GET['dir']) ? $_GET['dir'] : ''; $mimetype = isset($_GET['mimetype']) ? $_GET['mimetype'] : ''; // make filelist $files = array(); foreach (OC_Files::getdirectorycontent($dir, $mimetype) as $i) { $i["date"] = OCP\Util::formatDate($i["mtime"]); $i['mimetype_icon'] = $i['type'] == 'dir' ? \mimetype_icon('dir') : \mimetype_icon($i['mimetype']); $files[] = $i; } OCP\JSON::success(array('data' => $files));