跳到主要内容
版本:v7

@capacitor/file-transfer

FileTransfer API 提供了下载和上传文件的机制。

安装

npm install @capacitor/file-transfer
npx cap sync

API

downloadFile(...)

downloadFile(options: DownloadFileOptions) => Promise<DownloadFileResult>

向服务器发起 HTTP 请求并将文件下载到指定位置。

参数类型
options
DownloadFileOptions

返回值:

Promise<DownloadFileResult>

自版本: 1.0.0


uploadFile(...)

uploadFile(options: UploadFileOptions) => Promise<UploadFileResult>

执行 HTTP 请求将文件上传到服务器

参数类型
options
UploadFileOptions

返回值:

Promise<UploadFileResult>

自版本: 1.0.0


addListener('progress', ...)

addListener(eventName: "progress", listenerFunc: (progress: ProgressStatus) => void) => Promise<PluginListenerHandle>

添加文件传输(下载或上传)进度事件的监听器。

参数类型
eventName'progress'
listenerFunc
(progress: ProgressStatus) => void

返回值:

Promise<PluginListenerHandle>

自版本: 1.0.0


removeAllListeners()

removeAllListeners() => Promise<void>

移除此插件的所有监听器。

自版本: 1.0.0


Interfaces

DownloadFileResult

属性类型描述自版本
pathstring文件下载到的路径。1.0.0
blobBlob下载文件的 blob 数据。此属性仅在 Web 平台可用。1.0.0

DownloadFileOptions

属性类型描述自版本
pathstring下载文件应移动到的完整文件路径。1.0.0
progressboolean如果为 true,每接收到一个数据块都会派发进度事件。更多信息请参阅 addListener()。在 Android/iOS 上,数据块派发会被节流至每 100 毫秒一次以避免性能下降。1.0.0

UploadFileResult

属性类型描述自版本
bytesSentnumber已上传的总字节数1.0.0
responseCodestring上传操作的 HTTP 响应码1.0.0
responsestring上传操作的 HTTP 响应体(如果可用)1.0.0
headers{ [key: string]: string; }上传响应的 HTTP 头信息(如果可用)1.0.0

UploadFileOptions

属性类型描述自版本
pathstring要上传文件的完整路径。1.0.0
blobBlob要上传的 blob 数据。如果提供了此参数,将优先使用它而不是路径。此属性仅在 Web 平台可用。1.0.0
chunkedModeboolean是否以分块流模式上传数据。Web 平台不支持。1.0.0
mimeTypestring要上传数据的 MIME 类型。仅在未提供 "Content-Type" 头信息时使用。1.0.0
fileKeystring表单元素的类型。默认设置为 "file"。仅在未提供 "Content-Type" 头信息时使用。1.0.0
progressboolean如果为 true,每接收到一个数据块都会派发进度事件。更多信息请参阅 addListener()。在 Android/iOS 上,数据块派发会被节流至每 100 毫秒一次以避免性能下降。1.0.0

PluginListenerHandle

属性类型
remove() => Promise<void>

ProgressStatus

属性类型描述自版本
type'download' | 'upload'传输操作的类型(下载或上传)。1.0.0
urlstring与传输(下载或上传)关联的文件 URL。1.0.0
bytesnumber到目前为止已传输的字节数。1.0.0
contentLengthnumber与文件传输关联的总字节数。1.0.0
lengthComputablebooleancontentLength 值是否相关。在某些情况下,可能无法确定总字节数。1.0.0

错误信息

该插件在 iOS、Android 和 Web 平台上会返回以下特定代码的错误:

错误代码平台描述
OS-PLUG-FLTR-0004Android, iOS方法的输入参数无效。
OS-PLUG-FLTR-0005Android, iOS提供了无效的服务器 URL 或 URL 为空。
OS-PLUG-FLTR-0006Android, iOS无法执行操作,用户拒绝了权限请求。
OS-PLUG-FLTR-0007Android, iOS操作失败,因为文件不存在。
OS-PLUG-FLTR-0008Android, iOS, Web连接到服务器失败。
OS-PLUG-FLTR-0009Android, iOS服务器响应 HTTP 304 – 未修改。如果想避免此错误,请检查与 HTTP 缓存相关的头信息。
OS-PLUG-FLTR-0010Android, iOS服务器响应了 HTTP 错误状态码。
OS-PLUG-FLTR-0011Android, iOS, Web操作失败并出现错误(通用错误)。

在应用程序中处理错误时,您可以检查错误代码以确定具体问题。错误对象通常包含以下附加信息:

  • code:错误代码(如上表所示)
  • message:人类可读的错误描述
  • source:传输的源(文件路径或 URL)
  • target:传输的目标(文件路径或 URL)
  • httpStatus:HTTP 状态码(针对 HTTP 错误)
  • body:响应体(针对 HTTP 错误)
  • headers:响应头信息(针对 HTTP 错误)