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;
 }
Example #2
0
// 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()) {
Example #3
0
 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);
 }
Example #4
0
                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");
Example #5
0
 /**
  * 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;
 }