# common-ktor **Repository Path**: isyscore_admin/common-ktor ## Basic Information - **Project Name**: common-ktor - **Description**: 指令集 通用 Kotlin/Ktor 基础库 - **Primary Language**: Kotlin - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2020-12-25 - **Last Updated**: 2021-01-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 指令集 通用 Kotlin/Ktor 基础库 指令集通用的 Kotlin/Ktor 基础库,适用于 Ktor/JVM 平台。 本代码库提供了大量的函数扩展,旨在帮助开发者用更少,更可靠,更直观的代码来完成工作 ### 传递依赖 ``` com.github.isyscore:common-jvm:1.3.1 ``` ### 使用 ```groovy kotlin_version=1.4.10 ktor_version=1.4.1 dependencies { implementation 'com.github.isyscore:common-ktor:1.3.1' } ``` ### 函数库 | 文件 | 函数 | 返回 | 作用 | 备注 | | :-- | :-- | :-- | :-- | :-- | | ApplicationCallExtension | config | String | 从 application.conf 内读取配置信息 | | | ApplicationCallExtension | ifcfg | String | 带条件判断的读取配置信息 | | | ApplicationCallExtension | requestParameters | Map<String, String> | 获取任意请求的传入参数 | 协程 | | ApplicationCallExtension | resolveFileContent | String? | 读取资源文件内容(可以是jar内的文件) | | | ApplicationCallExtension | resolveFileBytes | ByteArray? | 读取资源文件内容(可以是jar内的文件) | | | ApplicationCallExtension | resolveFileSave | Boolean | 保存资源文件到目标副本 | 协程 | | ApplicationCallExtension | resolveFile | File? | 获取资源文件(不能是jar内的文件) | | | ApplicationCallExtension | resourcePath | File? | 获取资源文件路径 | | | ApplicationCallExtension | sendDownload | | 向客户端发送一个下载文件 | 协程 | | ApplicationExtension | config | String | 从 application.conf 内读取配置信息 | | | ApplicationExtension | ifcfg | String | 带条件判断的读取配置信息 | | | ApplicationExtension | resourcePath | File? | 获取资源文件路径 | | | ApplicationExtension | db | DB | 获取数据库对象 | | | ApplicationExtension | conn | Connection | 获取数据库连接 | | | ApplicationExtension | pluginRedirect | | 向工程安装 HTTPS 重定向插件 | | | ApplicationExtension | pluginSession | | 向工程安装 Session 插件 | | | ApplicationExtension | pluginCompress | | 向工程安装请求压缩插件 | | | ApplicationExtension | pluginDefaultHeaders | | 向工程安装默认请求头插件 | | | ApplicationExtension | pluginPartialContent | | 向工程安装内容拆分插件 | | | ApplicationExtension | pluginContentNegotiation | | 向工程安装JSON编解插件 | | | ApplicationExtension | installPlugin | | 向Ktor程序预安装插件 | 工程启动时必须先执行 | | DatabaseExtension | DB | DB | 数据库对象扩展,支持自动重连 | | | FileExtension | findContainingJarFile | File | 搜索文件所在的 jar 包 | | | InputStreamExtension | copyToSuspend | Int | 以协程复制一个流 | 协程 | | MultiPartDataExtension | firstOrNull | PartData? | 获取multipart内符合条件的第一个对象 | 协程 | | MultiPartDataExtension | filter | List<PartData> | 过滤multipart内容 | 协程 | | MultiPartDataExtension | save | Boolean | 将multipart内容保存到文件 | 协程 | | MultiPartDataExtension | FileItem.save | Boolean | 将文件类型的multipart内容保存到文件 | 协程 | | MultiPartDataExtension | value | String? | 以字符串形式获取一个multipart参数内容 | 协程 | | MultiPartDataExtension | file | FileItem | 以FileItem形式获取一个multipart参数内容 | 协程 | | PipelineContextExtension | session | T | 获取当前的session | | | PipelineContextExtension | config | String | 从 application.conf 内读取配置信息 | | | PluginExtension | loadPlugin | | 加载一个 Ktor 插件 | | | PluginExtension | unloadPlugin | | 卸载一个 Ktor 插件 | | | PluginExtension | isPluginLoaded | Booolean | 判断 Ktor 插件是否已被成功加载 | | | PluginExtension | loadAllPlugins | | 加载指定目录下的所有 Ktor 插件 | | | PluginExtension | unloadAllPlugins | | 卸载(指定目录下的)所有 Ktor 插件 | | ### 代码案例 ```kotlin // 获取请求参数 post("/sample") { val p = call.requestParameters() val name = (p["name"] ?: "").decodeURLPart() } ``` ```kotlin // 向客户端发送下载文件 get("/download") { val filename = call.requestParameters()["filename"] ?: "" val fDest = File(DOWNLOAD_FILE_PATH, filename) call.sendDownload(fDest, filename) } ```