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;
    }