public function downloadBook($bookId, $page = 0, $limit = 0) { $dbBooks = $this->db->getBookById((int) $bookId); if (count($dbBooks) == 0) { // TODO: error msg return; } $dbBook = array_shift($dbBooks); $download_times = @$dbBook["download_times"] + 1; $this->db->editBook(array("id" => $dbBook["id"], "download_times" => $download_times)); header('Content-type:application/force-download'); header('Content-Transfer-Encoding: Binary'); header('Content-Disposition: attachment; filename*=UTF-8\'\'' . urlencode($dbBook["name"] . "txt")); echo iconv("UTF-8", "UTF-16", $dbBook["name"] . "\n\n"); echo iconv("UTF-8", "UTF-16", "程式作者:Andy\n\n"); echo iconv("UTF-8", "UTF-16", "Class: {$dbBook['class']}\n"); echo iconv("UTF-8", "UTF-16", "Pages: {$dbBook['pages']}\n"); echo iconv("UTF-8", "UTF-16", "Posts: {$dbBook['posts']}\n"); echo iconv("UTF-8", "UTF-16", "Looks: {$dbBook['looks']}\n"); $page = max(1, $page); $limit = $limit == 0 ? $dbBook["pages"] : $limit; PtFile::printBook($bookId, $page, $limit); }