mobile-more
Version:
基于 antd-mobile v5 扩展移动端 UI 组件
80 lines (79 loc) • 2.65 kB
TypeScript
import { getFileType } from 'util-helpers';
import { ImageUploadItem } from 'antd-mobile';
/**
* 获取 url 的文件名。
*
* 如果是 `blob:xxx` 格式的 URL,则返回空字符串。
*
* @param url 文件URL
* @returns 文件名
* @example
* getUrlFileName('https://example.com/file.txt') // 'file.txt'
* getUrlFileName('https://example.com/dir/file.txt') // 'file.txt'
* getUrlFileName('blob:https://example.com/1234-5678-90ab-cdef') // ''
* getUrlFileName('xxx') // 'xxx'
* getUrlFileName('xxx.txt') // 'xxx.txt'
*/
export declare function getUrlFileName(url: string): string;
/**
* 上传文件类型
*/
export type UploadFileType = {
uid: string;
name: string;
url: string;
key?: string | number;
thumbnailUrl?: string;
extra?: any;
fileType: ReturnType<typeof getFileType>;
type?: string;
size?: number;
lastModified?: number;
originFileObj?: File;
};
/**
* 文件类型
*/
export type FileType = string | File | ImageUploadItem | UploadFileType;
/**
* 转换文件为统一的上传文件格式
* @param file - 待转换的文件,可以是 File 对象、URL 字符串或自定义文件对象
* @param createObjectUrlOnOriginFile - 是否为原始文件创建 Object URL,默认为 true
* @param uid - 自定义 uid
* @returns 标准化的上传文件对象,包含 uid、name、url、fileType 等属性
*
* 转换规则:
* - File 对象: 保留原始文件信息,并可选创建 Object URL
* - URL 字符串: 提取文件名,设置 url
* - 其他对象: 合并到结果对象
*/
export declare function transformUploadFile(file?: FileType, createObjectUrlOnOriginFile?: boolean, uid?: string): UploadFileType;
/**
* 获取文件缩略图URL
* @param file - 文件对象
* @returns 返回文件缩略图的URL地址。如果文件有缩略图则返回缩略图URL,否则根据文件类型返回对应的图标URL
* - 图片类型:返回原始URL或blob URL
* - 音频类型:返回音频图标
* - 视频类型:返回视频图标
* - PDF类型:返回PDF图标
* - Word类型:返回Word图标
* - Excel类型:返回Excel图标
* - 其他类型:返回默认文件图标
*/
export declare function getFileThumbUrl(file?: FileType): string;
/**
* 是否为有效PDF URL
* @param pdfUrl PDF URL
* @returns 是否为有效PDF URL
*/
export declare const isValidPdfUrl: (pdfUrl?: string) => boolean;
/**
* 支持的文件类型
*/
export declare const supportedFileType: string[];
/**
* 是否支持预览
* @param file 文件对象
* @returns 是否支持预览
*/
export declare function supports(file?: FileType): boolean;