上传文件
介绍
- 本工程主要实现了对以下指南文档中 https://docs.openharmony.cn/pages/v5.0/zh-cn/application-dev/web/web-file-upload.md 示例代码片段的工程化,主要目标是实现指南中示例代码需要与sample工程文件同源。
UploadFiles
介绍
- 本示例主要介绍Web组件上传文件功能,Web组件支持前端页面选择文件上传功能,应用开发者可以使用onShowvfileSelector)接口来处理前端页面文件上传的请求,如果应用开发者不做任何处理,Web会提供默认行为来处理前端页面文件上传的请求。
效果预览
| 主页 | |
|---|---|
![]() |
![]() |
使用方法
- 在主页点击选择文件按钮触发onShowFileSelector事件创建DocumentSelectOptions和DocumentViewPicker,用于打开文件选择器,弹出文件选择器,用户可选择一个文件。
使用Web组件的下载能力
介绍
- 本工程主要实现了对以下指南文档中 https://docs.openharmony.cn/pages/v5.0/zh-cn/application-dev/web/web-download.md 示例代码片段的工程化,主要目标是实现指南中示例代码需要与sample工程文件同源。
ListenForPageDown
介绍
- 本示例主要介绍使用Web组件监听页面触发的下载功能,通过setDownloadDelegate()向Web组件注册一个DownloadDelegate来监听页面触发的下载任务。资源由Web组件来下载,Web组件会通过DownloadDelegate将下载的进度通知给应用。
效果预览
| 主页 | 下载 |
|---|---|
![]() |
![]() |
使用说明
- 点击setDownloadDelegate按钮,定义下载委托回调。
- 点击下载download.html链接,触发下载任务。
InitiatingADownloadTask
介绍
- 本示例主要介绍使用Web组件的下载能力。在Web组件启动时,可通过resumeDownload()接口恢复未完成的下载任务。
效果预览
| 主页 | 下载 |
|---|---|
![]() |
![]() |
使用说明
- 点击setDownloadDelegate按钮,定义下载委托回调。
- 使用startDownload()接口发起一个下载。
ResumeDownload
介绍
- 本示例主要介绍使用Web组件的下载能力。使用startDownload()接口发起一个下载,Web组件发起的下载会根据当前显示的url以及Web组件默认的Referrer Policy来计算referrer。
效果预览
| 主页 |
|---|
![]() |
使用说明
- 点击setDownloadDelegate按钮,定义下载委托回调。
- 使用startDownload()接口发起一个下载。
- 通过record按钮将当前下载任务保存至持久化文件中,记录下载任务信息。
- 点击recovery按钮恢复下载任务。
工程目录
entry/src/main/
|---ets
|---|---entryability
|---|---|---EntryAbility.ets
|---|---pages
|---|---|---UploadFiles.ets
|---|---|---downloadUtil.ets
|---|---|---Index.ets // 首页
|---|---|---InitiatingADownloadTask.ets
|---|---|---ListenForPageDown.ets
|---|---|---ResumeDownload.ets
|---resources // 静态资源
|---ohosTest
|---|---ets
|---|---|---tests
|---|---|---|---Ability.test.ets // 自动化测试用例
具体实现
- 上传文件,源码参考UploadFiles.ets
- 在拦截回调中调用ocumentViewPicker启动文件选择器,通过异步方式允许用户从设备存储中选择目标文档,获取对应的文件url。调用FileSelectorResult对象的handleFileList方法,通知Web组件进行文件选择操作。
- 使用Web组件的下载能力,源码参考ResumeDownload.ets
- 实例化WebDownloadDelegate对象并通过setDownloadDelegate接口将其绑定至当前Web控制器,接管Web组件的下载行为。
- 在onBeforeDownload中指定文件存储路径,在onDownloadUpdated中实时获取进度。
- 通过saveDownloadInfo将当前的下载任务信息序列化保存,用于后续恢复下载任务。
- 在恢复流程中,首先从本地文件中读取已保存的序列化数据,通过deserialize还原出下载任务对象。随后调用resumeDownload接口,恢复下载任务。
相关权限
依赖
不涉及。
约束与限制
- 本示例仅支持标准系统上运行,支持设备:RK3568。
- 本示例支持API18版本SDK,SDK版本号(API Version 18 Release)。
- 本示例需要使用DevEco Studio 版本号(5.0.1Release)才可编译运行。
下载
如需单独下载本工程,执行如下命令:
git init
git config core.sparsecheckout true
echo code/DocsSample/ArkWeb/ManageWebPageFileIO > .git/info/sparse-checkout
git remote add origin https://gitee.com/openharmony/applications_app_samples.git
git pull origin master






