Skip to content

downloadFile

微信小程序下载文件封装,自动处理文件保存和错误处理。

前置依赖

依赖参数

参数名类型说明
deps.USER_DATA_PATHWx['env']['USER_DATA_PATH']用户数据目录路径
deps.downloadFileWx['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']
}

参数

参数名类型必填说明
urlstring下载链接
fileNamestring指定文件名(必填)
depsWxDownloadFileDeps微信 API 依赖

返回值

类型说明
Promise<string>Promise,解析为下载文件的完整路径

异常

错误类型触发条件错误信息
ErrorURL 为空或不是字符串Download URL cannot be empty and must be a string
Error文件名为空或不是字符串File name cannot be empty and must be a string
ErrorHTTP 404File not found, please check the download URL: {url}
ErrorHTTP 4xxClient error, status code: {statusCode}
ErrorHTTP 5xxServer error, status code: {statusCode}
Error下载失败File download failed: {errorMessage}

工作原理

  1. 参数验证:验证 URL 和文件名是否有效
  2. 构建下载选项:使用 USER_DATA_PATH 作为保存目录,构建完整的文件路径
  3. 调用微信API:使用 wx.downloadFile 下载文件
  4. 处理响应
    • 状态码 200:返回文件路径
    • 状态码 404:抛出文件未找到错误
    • 状态码 4xx:抛出客户端错误
    • 状态码 5xx:抛出服务器错误
    • 其他状态码:抛出下载失败错误
  5. 错误处理:捕获并转换微信 API 的错误信息
  6. 返回路径:成功时返回文件的完整路径

自动使用微信小程序的用户数据目录保存文件,提供详细的错误信息和状态码处理。