public function submitFilesAPI() { $data = file_get_contents("php://input"); $dataArr = (array) json_decode($data); if (empty($dataArr)) { ZDebug::my_echo('Error: Json format error!'); //header('HTTP/1.1 500 Json format error'); $this->submitFileHelper(); exit; } // $dataArr['folderFullName'] cannot be null if (!isset($dataArr['folderFullName']) || empty($dataArr['folderFullName'])) { ZDebug::my_echo('Error: folderFullName cannot be null!'); $this->submitFileHelper(); exit; } if (!isset($dataArr['files']) || count($dataArr['files']) == 0) { ZDebug::my_echo('Error: no file in the submit!'); $this->submitFileHelper(); exit; } // Build folder and sub folders in file root if not exist mkdirInFileRoot($dataArr['folderFullName']); // Adding files foreach ($dataArr['files'] as $fileItem) { $myFile['url'] = $fileItem->url; $myFile = array_merge($myFile, (array) json_decode($fileItem->fields)); // Get folder real full name - absolute path $folderABSName = FILE_ROOT . DIRECTORY_SEPARATOR . $dataArr['folderFullName']; // Download file to folder $fileFullName = $this->downloadFile($myFile['url'], $folderABSName); if (!$fileFullName) { ZDebug::my_echo('Download failed! URL: ' . $myFile['url']); continue; } // Import this file to DB import('SyncFiles'); SyncFiles::importFiles($dataArr['folderFullName']); // Update the file info with data in json import('dao.File'); $file = new File(); $fileToSave = $file->getFile($fileFullName); if ($fileToSave) { $fileToSave['page_title'] = $myFile['Text']; $fileToSave['page_meta'] = $fileItem->fields; $file->saveFile($fileToSave); } else { ZDebug::my_echo('Import to DB failed! ' . $fileFullName); } // Build thumbnails here? //$myThumb = imageCache::cacheImage($fileFullName, 160, 120); //if(!$myThumb) ZDebug::my_echo ('error build thumbnail for ' . $fileFullName); ZDebug::my_print($myFile, 'Adding file'); } ZDebug::my_echo('Success to add ' . count($dataArr['files']) . ' files to folder: ' . $dataArr['folderFullName']); exit; }
// Include common functions and declarations require_once "../../include/common.php"; // Check if user has edit permissions if (!$login->isAdmin()) { $login->printLoginForm(); exit; } // Create file object $file = new File(getGetValue("fileId")); // Check if file exists if (!empty($file->id)) { $mode = getGetValue("mode"); if ($mode == "update") { // Save file $errors = $file->saveFile(); if (!$errors->hasErrors()) { // Redirect redirect(scriptUrl . "/" . folderFilesAdmin . "/" . fileFilesIndex . (!empty($file->parent->id) ? "?folderId=" . $file->parent->id : "")); } } // Add navigation links $site->addNavigationLink(scriptUrl . "/" . folderAdmin, $lAdminIndex["Header"]); $site->addNavigationLink(scriptUrl . "/" . folderFilesAdmin, $lFileIndex["Header"]); $site->addNavigationLink(scriptUrl . "/" . folderFilesAdmin . "/" . fileFilesEditFile . "?fileId=" . $file->id, $lFileEditFile["Header"]); // Print common header $site->printHeader(); // Print page text printf($lFileEditFile["HeaderText"], $file->name); // Print error messages if any if ($errors->hasErrors()) {
public static function syncFolders($folderToSync) { $debug = self::$debug; $mode = self::$mode; import('dao.Folder'); $folder = new Folder(); import('dao.File'); $file = new File(); $folderFullName = $folderToSync['path']; $folderId = $folderToSync['fd_id']; // If folder is locked, ignore. Unless set mode greater than 0. if ($folderToSync['locked'] && $mode == 0) { if ($debug) { ZDebug::my_echo('Ignore locked folder: ' . $folderFullName . '(' . $folderId . ')'); } return TRUE; } // Step 1: If folder is not physically exist, set to deleted in DB. if (!is_dir($folderFullName)) { $folder->deleteFolder($folderId); if ($debug) { ZDebug::my_echo('Delete folder in DB: ' . $folderFullName . '(' . $folderId . ')'); } return TRUE; } // Step 2: Get the result set of files under this folder $filesInFolder = $folder->getFilesInFolder($folderId); $fileNameArr = array(); foreach ($filesInFolder as $theFile) { // Step 3: If a file is not physically exist, delete it in table files. if (!file_exists($theFile['path'])) { $file->deleteFile($theFile['fid']); if ($debug) { ZDebug::my_echo('Delete file in DB: ' . $theFile['path'] . '(' . $theFile['fid'] . ')'); } } elseif ($theFile['last_modified'] != my_filemtime($theFile['path'])) { $theFile['last_modified'] = my_filemtime($theFile['path']); $file->saveFile($theFile); if ($debug) { ZDebug::my_echo('Update file in DB: ' . $theFile['path'] . '(' . $theFile['fid'] . ')'); } } elseif ($mode > 1) { $file->saveFile($theFile); if ($debug) { ZDebug::my_echo('Update file in DB: ' . $theFile['path'] . '(' . $theFile['fid'] . ')'); } } else { } $fileNameArr[] = $theFile['name']; } // Step 5: Get result set of sub-folders under this folder $subFoldera = $folder->getSubFolder($folderId); $folderNameArr = array(); foreach ($subFoldera as $theFolder) { // Step 6: If a folder is not physically exist, set deleted flag in table folders. if (!file_exists($theFolder['path'])) { $folder->deleteFolder($theFolder['fd_id']); if ($debug) { ZDebug::my_echo('Delete folder in DB: ' . $theFolder['path'] . '(' . $theFolder['fd_id'] . ')'); } } elseif ($theFolder['last_modified'] != my_filemtime($theFolder['path'])) { $theFolder['last_modified'] = my_filemtime($theFolder['path']); $folder->saveFolder($theFolder); if ($debug) { ZDebug::my_echo('Update folder in DB: ' . $theFolder['path'] . '(' . $theFolder['fd_id'] . ')'); } self::syncFolders($theFolder); } else { self::syncFolders($theFolder); } $folderNameArr[] = $theFolder['name']; } $hdl = opendir($folderFullName); while ($item = readdir($hdl)) { $itemFullName = $folderFullName . DIRECTORY_SEPARATOR . $item; // Step 8: If physical file is not in DB file result set, then add a file if ($item != "." && $item != ".." && is_file($itemFullName) && !in_array($item, $fileNameArr)) { $file->saveFile(array('path' => $itemFullName, 'fd_id' => $folderId)); if ($debug > 1) { ZDebug::my_echo('Adding new file in DB: ' . $itemFullName); } } // Step 9: if physical folder is not in DB folder result set, then add a folder if ($item != "." && $item != ".." && is_dir($itemFullName) && !in_array($item, $folderNameArr)) { self::addFolder($itemFullName, $folderId); } } closedir($hdl); }
move_uploaded_file($_FILES['archivo3']['tmp_name'], $this->nombre); echo "Archivo: " . $_FILES['archivo3']['name'] . " se subio exitosamente<br>"; } } if ($archivo4) { $this->setNombre("../pdfs/reglamento_deportivo.pdf"); if (!$_FILES['archivo4']["error"] > 0) { move_uploaded_file($_FILES['archivo4']['tmp_name'], $this->nombre); echo "Archivo: " . $_FILES['archivo4']['name'] . " se subio exitosamente<br>"; } } if ($archivo5) { $this->setNombre("../pdfs/calendario.pdf"); if (!$_FILES['archivo5']["error"] > 0) { move_uploaded_file($_FILES['archivo5']['tmp_name'], $this->nombre); echo "Archivo: " . $_FILES['archivo5']['name'] . " se subio exitosamente<br>"; } } if ($archivo6) { $this->setNombre("../pdfs/circular.pdf"); if (!$_FILES['archivo6']["error"] > 0) { move_uploaded_file($_FILES['archivo6']['tmp_name'], $this->nombre); echo "Archivo: " . $_FILES['archivo6']['name'] . " se subio exitosamente<br>"; } } } } $file = new File(); $file->verificar(); $file->saveFile(); header("refresh:2; url=administracion_sistema.php");
/** * Save a new file record. * * @param array $redir_data lookup data eg from File_redirection::where() * @param string $given_url * @return File */ public static function saveNew(array $redir_data, $given_url) { $file = null; try { // I don't know why we have to keep doing this but we run a last check to avoid // uniqueness bugs. $file = File::getByUrl($given_url); return $file; } catch (NoResultException $e) { // We don't have the file's URL since before, so let's continue. } $file = new File(); $file->url = $given_url; if (!empty($redir_data['protected'])) { $file->protected = $redir_data['protected']; } if (!empty($redir_data['title'])) { $file->title = $redir_data['title']; } if (!empty($redir_data['type'])) { $file->mimetype = $redir_data['type']; } if (!empty($redir_data['size'])) { $file->size = intval($redir_data['size']); } if (isset($redir_data['time']) && $redir_data['time'] > 0) { $file->date = intval($redir_data['time']); } $file->saveFile(); return $file; }