/** * 文件名处理工具类 * 统一管理文件名的编码、清理、截取等操作 */ export declare class FileNameUtil { /** * 解码并标准化文件名 * 1. Multer 默认使用 Latin1 解码,需要转换为 UTF-8 * 2. 移除特殊字符和控制字符 * 3. 截取超长文件名到指定长度 * * @param filename 原始文件名 * @param maxLength 最大长度(默认 100 字符) * @returns 处理后的文件名 */ static decodeAndNormalize(filename: string, maxLength?: number): string; /** * 智能截取文件名(保留扩展名) * * @param filename 文件名 * @param maxLength 最大长度 * @returns 截取后的文件名 */ static truncateWithExtension(filename: string, maxLength: number): string; /** * 清理文件名(移除危险字符) * 移除路径遍历、路径分隔符、控制字符等 * * @param filename 文件名 * @returns 清理后的文件名 */ static sanitize(filename: string): string; /** * 清理并保留原始文件名结构 * 先解码 UTF-8,再清理危险字符 * * @param filename 文件名 * @returns 清理后的文件名 */ static sanitizeOriginal(filename: string): string; /** * 提取文件扩展名 * * @param filename 文件名 * @returns 扩展名(包含点)或空字符串 */ static extractExtension(filename: string): string; /** * 获取不包含扩展名的文件名 * * @param filename 文件名 * @returns 不包含扩展名的文件名 */ static getBaseName(filename: string): string; /** * 检查字符串是否包含有效的字符 */ private static hasValidCharacters; }