downloadFile
微信小程序下载文件封装,自动处理文件保存和错误处理。
前置依赖
依赖参数
| 参数名 | 类型 | 说明 |
|---|---|---|
deps.USER_DATA_PATH | Wx['env']['USER_DATA_PATH'] | 用户数据目录路径 |
deps.downloadFile | Wx['downloadFile'] | 微信下载文件函数 |
环境要求
- 微信小程序环境: 使用微信小程序 API
函数签名
typescript
function wxDownloadFile(
url: string,
fileName: string,
deps: WxDownloadFileDeps
): Promise<string>
interface WxDownloadFileDeps {
USER_DATA_PATH: Wx['env']['USER_DATA_PATH']
downloadFile: Wx['downloadFile']
}参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
url | string | 是 | 下载链接 |
fileName | string | 是 | 指定文件名(必填) |
deps | WxDownloadFileDeps | 是 | 微信 API 依赖 |
返回值
| 类型 | 说明 |
|---|---|
Promise<string> | Promise,解析为下载文件的完整路径 |
异常
| 错误类型 | 触发条件 | 错误信息 |
|---|---|---|
Error | URL 为空或不是字符串 | Download URL cannot be empty and must be a string |
Error | 文件名为空或不是字符串 | File name cannot be empty and must be a string |
Error | HTTP 404 | File not found, please check the download URL: {url} |
Error | HTTP 4xx | Client error, status code: {statusCode} |
Error | HTTP 5xx | Server error, status code: {statusCode} |
Error | 下载失败 | File download failed: {errorMessage} |
工作原理
- 参数验证:验证 URL 和文件名是否有效
- 构建下载选项:使用
USER_DATA_PATH作为保存目录,构建完整的文件路径 - 调用微信API:使用
wx.downloadFile下载文件 - 处理响应:
- 状态码 200:返回文件路径
- 状态码 404:抛出文件未找到错误
- 状态码 4xx:抛出客户端错误
- 状态码 5xx:抛出服务器错误
- 其他状态码:抛出下载失败错误
- 错误处理:捕获并转换微信 API 的错误信息
- 返回路径:成功时返回文件的完整路径
自动使用微信小程序的用户数据目录保存文件,提供详细的错误信息和状态码处理。