function deleteOrphans() { $sql = 'DELETE FROM ' . FILE_TABLE . ' WHERE id NOT IN (' . 'SELECT file_id FROM ' . TICKET_ATTACHMENT_TABLE . ' UNION ' . 'SELECT file_id FROM ' . CANNED_ATTACHMENT_TABLE . ' UNION ' . 'SELECT file_id FROM ' . FAQ_ATTACHMENT_TABLE . ") AND `ft` = 'T'"; db_query($sql); //Delete orphaned chuncked data! AttachmentChunkedData::deleteOrphans(); return true; }
function saveAttachment($file) { if(!$file['hash']) $file['hash']=MD5(md5_file($file['path']).time()); $file['data'] = file_get_contents($file['path']); if(!$file['size']) $file['size']=strlen($file['data']); $sql='INSERT INTO '.FILE_TABLE.' SET created=NOW() ' .',type='.db_input($file['type']) .',size='.db_input($file['size']) .',name='.db_input($file['name']) .',hash='.db_input($file['hash']); if (!(db_query($sql) && ($id=db_insert_id()))) return false; $f = new CompatAttachmentFile($id); $bk = new AttachmentChunkedData($f); if (!$bk->write($file['data'])) return false; return $id; }