/** * Para insertar un nuevo registro, debo pasar la ruta de * un archivo (puede ser de un archivo local o uno remoto con http://...) */ public static function INSERT($file_path, $mime) { $hash = md5_file($file_path); $list = File::SELECT("Hash='" . Database::escape($hash) . "'"); if (count($list)) { $file = $list[0]; $file->_setCounter($file->getCounter() + 1); } else { $file = parent::INSERT(); $file->_setMime($mime); $file->_setHash($hash); $file->_setSize(filesize($file_path)); $file->_setCounter(1); $file->setUser(Session::getUser()); $file->setTimestamp(time()); Rack::Write('file', md5($file->ID()), $file_path); $file->updateSearchIndex(); } return $file; }
<?php $q = $_POST['q']; $files = File::SELECT("SearchIndex LIKE '%" . Database::escape($q) . "%'"); $result = array(); foreach ($files as $f) { $result[] = array('id' => $f->getId(), 'name' => $f->getName(), 'mime' => $f->getMime(), 'size' => $f->getSize(), 'timestamp' => $f->getTimestamp(), 'user' => $f->getUser()->getName()); } echo json_encode($result);