引入
ts
import {
downloadFileFromBlob,
downloadFilesToZip,
getSafeFileExtension,
getExtensionFromMime
} from 't-comm';
// 不支持 tree-shaking 的项目
import {
downloadFileFromBlob,
downloadFilesToZip,
getSafeFileExtension,
getExtensionFromMime
} from 't-comm/lib/file/index';
// 只支持 ESM 的项目
import {
downloadFileFromBlob,
downloadFilesToZip,
getSafeFileExtension,
getExtensionFromMime
} from 't-comm/es/file/index';downloadFileFromBlob(blob, fileName)
描述:
从 Blob 对象下载文件。创建一个临时链接并触发浏览器下载
参数:
| 参数名 | 描述 |
|---|---|
| blob | Blob 数据 |
| fileName | 下载的文件名 |
示例
ts
const blob = new Blob(['Hello World'], { type: 'text/plain' });
downloadFileFromBlob({
blob,
fileName: 'hello.txt'
});downloadFilesToZip(fileList, zipName, saveAs, JSZip)
描述:
批量下载文件为 ZIP 压缩包。将多个文件打包成 ZIP 并触发下载
参数:
| 参数名 | 描述 |
|---|---|
| fileList | 文件列表,每个文件包含 content 和 name |
| zipName | ZIP 文件名 |
| saveAs | FileSaver.js 的 saveAs 函数 |
| JSZip | JSZip 库实例 |
返回:
Promise<boolean> - 成功返回 true,失败返回 false
示例
ts
import JSZip from 'jszip';
import { saveAs } from 'file-saver';
downloadFilesToZip({
fileList: [
{ content: 'file1 content', name: 'file1.txt' },
{ content: 'file2 content', name: 'file2.txt' }
],
zipName: 'files.zip',
saveAs,
JSZip
}).then(success => {
console.log('下载结果:', success);
});getSafeFileExtension(file)
描述:
安全获取文件后缀名
参数:
| 参数名 | 类型 | 描述 |
|---|---|---|
| file | File | 文件对象 |
返回: string
文件后缀名(小写,不带点)
getExtensionFromMime(mimeType)
描述:
从MIME类型获取文件后缀
参数:
| 参数名 | 类型 | 描述 |
|---|---|---|
| mimeType | string | MIME类型 |
返回: string | null
文件后缀或null