文件工具
大约 2 分钟
这是一个文件相关的工具类模块,提供了多个实用函数用于处理文件的常见操作。
calculateFileMd5
计算文件的 MD5,适用于小于 100MB 的文件。
参数说明
参数名 | 类型 | 说明 |
---|---|---|
file | File | Blob | 要计算 MD5 的文件对象或 Blob 对象 |
返回值说明
- 类型:
Promise<string>
- 说明:返回计算完成的 MD5 值(字符串形式)
示例
const file = new File(['example content'], 'example.txt');
const md5 = await calculateFileMd5(file);
console.log('文件 MD5:', md5);
calculateFilePartsMd5
分片计算文件的 MD5,适用于大文件,支持进度回调。
参数说明
参数名 | 类型 | 说明 |
---|---|---|
parts | PartInfo[] | 文件分片数组 |
onProgress | (progress: number) => void | 进度回调函数,0~100 |
返回值说明
- 类型:
Promise<string>
- 说明:返回整个文件的 MD5 值(字符串形式)
示例
const file = new File(['large file content'], 'large.txt');
const parts = sliceFile(file, 1024 * 1024); // 分片大小为 1MB
const md5 = await calculateFilePartsMd5(parts, progress => {
console.log('分片计算进度:', progress + '%');
});
console.log('文件 MD5:', md5);
sliceFile
将文件按指定大小切片,默认每片大小为 1MB。
参数说明
参数名 | 类型 | 说明 |
---|---|---|
file | File | 要切片的原始文件 |
partSize | number | 每个分片的大小(单位:字节) |
返回值说明
- 类型:
PartInfo[]
- 说明:返回包含所有分片信息的数组,每个分片包含唯一 ID、索引、文件切片等信息
示例
const file = new File(['large file content'], 'large.txt');
const parts = sliceFile(file, 1024 * 1024); // 切片大小为 1MB
console.log('分片数量:', parts.length);
getFileSuffixName
获取文件后缀名,返回小写格式。
参数说明
参数名 | 类型 | 说明 |
---|---|---|
fileName | string | 文件名(带扩展名) |
返回值说明
- 类型:
string
- 说明:返回文件的后缀名(小写)
示例
const fileName = 'document.pdf';
const suffix = getFileSuffixName(fileName);
console.log('文件后缀:', suffix); // 输出: pdf
byteToHumanReadable
将字节大小转换为可读性更高的单位(KB、MB、GB、TB)。
参数说明
参数名 | 类型 | 说明 |
---|---|---|
size | number | 文件大小(字节) |
返回值说明
- 类型:
string
- 说明:返回格式化后的文件大小(带单位)
示例
const size = 1524288; // 1.5 MB
const readableSize = byteToHumanReadable(size);
console.log('文件大小:', readableSize); // 输出: 1.45 M
downloadBlob
通过 Blob 对象下载文件。
参数说明
参数名 | 类型 | 说明 |
---|---|---|
downloadBlob | Blob | 要下载的文件数据 Blob |
fileName | string | 下载后保存的文件名 |
返回值说明
- 类型:
void
- 说明:无返回值,直接触发浏览器下载行为
示例
const blob = new Blob(['文件内容'], { type: 'text/plain' });
downloadBlob(blob, 'downloaded.txt');
downloadFile
通过 URL 下载文件。
参数说明
参数名 | 类型 | 说明 |
---|---|---|
downloadUrl | string | 文件下载地址(需带签名) |
fileName | string | 下载后保存的文件名 |
返回值说明
- 类型:
void
- 说明:无返回值,直接触发浏览器下载行为
示例
const downloadUrl = 'https://example.com/files/example.txt';
downloadFile(downloadUrl, 'example.txt');