public function listFiles() { Zend_Loader::loadClass('Files'); $files = new Files(); $list = $files->listFiles('public/files/uploaded/'); sort($list); $all = array(); foreach ($list as $filename) { $row['name'] = $filename; $row['filesize'] = filesize('public/files/uploaded/' . $filename); array_push($all, $row); } return $all; }
public function listAction() { $format = $this->_getParam('format', 'ajax'); switch ($format) { case 'xml': $this->_helper->layout->setLayout('xml'); $this->_helper->viewRenderer('list-xml'); break; default: $this->_helper->layout->setLayout('ajax'); } Zend_Loader::loadClass('Files'); $files = new Files(); $this->view->list = $files->listFiles('public/files/uploaded/'); }
/** * Index files from a remote container * * @param string $folder_id The folder id to refresh. Files will be fetched from its assigned container * @return array * **/ public function synchronize($folder_id) { $folder = Folder::find($folder_id); //list of files should be obtainable via files $files = Files::listFiles($folder->location, $folder->remote_container); // did the fetch go ok? if ($files['status']) { $valid_records = array(); $known = array(); $known_files = File::findByFolderId($folder_id); // now we build an array with the database filenames as the keys so we can compare with the cloud list foreach ($known_files as $item) { $known[$item->filename] = $item; } foreach ($files['data'] as $file) { // it's a totally new file if (!array_key_exists($file['filename'], $known)) { $insert = array('id' => substr(md5(microtime() + $data['filename']), 0, 15), 'folder_id' => $folder_id, 'user_id' => ci()->current_user->id, 'type' => $file['type'], 'name' => $file['filename'], 'filename' => $file['filename'], 'path' => $file['path'], 'description' => '', 'extension' => $file['extension'], 'mimetype' => $file['mimetype'], 'filesize' => $file['filesize'], 'date_added' => $file['date_added']); // we add the id to the list of records that have existing files to match them $valid_records[] = File::create($insert); } else { // it's totally not a new file // update with the details we got from the cloud File::where('id', $known[$file['filename']]->id)->update($file); // we add the id to the list of records that have existing files to match them $valid_records[] = $known[$file['filename']]->id; } } // Ok then. Let's clean up the records with no files and get out of here File::where('folder_id', $folder_id)->whereNotIn('id', $valid_records)->delete(); return $this->result(true, trans('files.synchronization_complete'), $folder->name, $files['data']); } else { return $this->result(null, trans('files.no_records_found')); } }