• Home
Name Date Size #Lines LOC

..--

AppScope/12-May-2024-3633

entry/12-May-2024-4,5134,135

hvigor/12-May-2024-2422

screenshots/device/12-May-2024-

.gitignoreD12-May-2024143 1010

README_zh.mdD12-May-20246.5 KiB13197

build-profile.json5D12-May-20241 KiB4241

hvigorfile.jsD12-May-2024168 21

hvigorwD12-May-20242.1 KiB6428

hvigorw.batD12-May-20242 KiB7356

oh-package.json5D12-May-2024812 2725

ohosTest.mdD12-May-20241.9 KiB2522

README_zh.md

1# 上传和下载
2
3### 介绍
4
5本示例主要展示Request服务向三方应用提供系统上传和下载服务能力,通过[@ohos.request](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-basic-services-kit/js-apis-request-sys.md),[@ohos.multimedia.mediaLibrary](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-media-library-kit/js-apis-medialibrary.md)
6等接口去实现图片的选取与上传,通过[@ohos.request](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-basic-services-kit/js-apis-request-sys.md),[@ohos.net.http](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-network-kit/js-apis-http.md) 等接口获取下载列表和开始下载任务。
7
8### 效果预览
9
10| 首页                                     | 上传首页                                      | 添加图片                                      |
11|----------------------------------------|-------------------------------------------|-------------------------------------------|
12| ![image](screenshots/device/home.jpeg) | ![image](screenshots/device/upload0.jpeg) | ![image](screenshots/device/upload1.jpeg) |
13
14| 已添加图片                                     | 上传中                                       | 上传成功                                      |
15|-------------------------------------------|-------------------------------------------|-------------------------------------------|
16| ![image](screenshots/device/upload2.jpeg) | ![image](screenshots/device/upload3.jpeg) | ![image](screenshots/device/upload4.jpeg) |
17
18| 下载首页                                        | 下载中                                         | 下载成功                                        |
19|---------------------------------------------|---------------------------------------------|---------------------------------------------|
20| ![image](screenshots/device/download0.jpeg) | ![image](screenshots/device/download1.jpeg) | ![image](screenshots/device/download2.jpeg) |
21
22使用说明
23
241.安装应用前,先本地配置好服务器;
25
262.将[config.ets](entry/src/main/ets/config/config.ets)
27文件中的服务器地址替换成配置好的服务器地址;
28
293.启动应用,点击允许访问权限进入;
30
314.点击上传示例,点击加号,点击拍摄进行拍照,点击从图库选择进行选取照片,图片会进行上传,上传成功后会有弹窗提示;
32
335.返回,点击下载示例,如果服务器有文件,点击全部下载,会下载所有列表文件。
34
35### 工程目录
36
37```
38entry/src/main/ets/
39|	├─Application
40|	│      MyAbilityStage.ets
41|	│
42|	├─componets
43|	│      AddPictures.ets              //图片添加
44|	│      DownloadController.ets       //下载交互控件
45|	│      NavigationBar.ets            //导航栏
46|	│      RequestBar.ets               //上传工具栏
47|	│      SelectDialog.ets             //选择弹窗
48|	│      UploadController.ets         //上传交互控件
49|	│
50|	├─config
51|	│      config.ets                   //配置文件
52|	│
53|	├─download
54|	│  └─pages
55|	│          Download.ets             //下载首页
56|	│
57|	├─feature
58|	│      CameraService.ts             //相机服务
59|	│      CostTimeCompute.ets          //耗时计算
60|	│      DateTimeUtil.ts              //日期工具
61|	│      GetPictures.ets              //获取图片
62|	│      MediaUtils.ts                //媒体工具
63|	│      UploadFile.ts                //上传文件
64|	│
65|	├─MainAbility
66|	│      MainAbility.ets              //主Ability
67|	│
68|	├─pages
69|	│      Index.ets                    //首页
70|	│
71|	├─upload
72|	│  └─pages
73|	│          CameraPage.ets           //相机页
74|	│          Upload.ets               //上传页
75|	│
76|	└─util
77|	        Logger.ts                   //日志工具
78|	        Style.ts                    //样式
79```
80
81### 具体实现
82
83* 上传控件,源码参考:[UploadController.ets](entry/src/main/ets/componets/UploadController.ets)
84    * 使用 @ohos.request.uploadFile 开启上传任务
85    * 使用 UploadTask.on('progress') 监听上传进度
86    * 使用 UploadTask.on('complete'|'fail') 监听上传结果
87* 下载控件,源码参考:[DownloadController.ets](entry/src/main/ets/componets/DownloadController.ets)
88    * 使用 @ohos.request.downloadFile 开启下载任务
89    * 使用 DownloadTask.on('progress') 监听下载进度
90    * 使用 DownloadTask.on('complete'|'fail') 监听下载结果
91
92### 相关权限
93
94本示例需要在module.json5中配置如下权限:
95
961.允许应用读取用户外部存储中的媒体文件信息权限:[ohos.permission.READ_MEDIA](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/security/AccessToken/permissions-for-all.md#ohospermissionread_media)
97
982.允许应用使用相机拍摄照片和录制视频权限:[ohos.permission.CAMERA](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/security/AccessToken/permissions-for-all.md#ohospermissioncamera)
99
1003.允许应用读写用户外部存储中的媒体文件信息权限:[ohos.permission.WRITE_MEDIA](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/security/AccessToken/permissions-for-all.md#ohospermissionwrite_media)
101
1024.允许使用Internet网络权限:[ohos.permission.INTERNET](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/security/AccessToken/permissions-for-all.md#ohospermissioninternet)
103
104### 依赖
105
1061.需要本地配置好HFS服务器,创建好支持上传的文件目录;
107
1082.执行uiTest时,相册需要有两张图片可供选择;
109
110### 约束与限制
111
1121.本示例仅支持标准系统上运行,支持设备:RK3568;
113
1142.本示例已适配API version 10版本SDK,版本号:4.0.9.1;
115
1163.本示例需要使用DevEco Studio 3.1 Release (Build Version: 3.1.0.500, built on April 28, 2023)及以上版本才可编译运行;
117
1184.本示例需要使用系统权限的接口。使用Full SDK时需要手动从镜像站点获取,并在DevEco Studio中替换,具体操作可参考[替换指南](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/faqs/full-sdk-switch-guide.md)119
120### 下载
121
122如需单独下载本工程,执行如下命令:
123
124```
125git init
126git config core.sparsecheckout true
127echo code/SystemFeature/Connectivity/Upload/ > .git/info/sparse-checkout
128git remote add origin https://gitee.com/openharmony/applications_app_samples.git
129git pull origin master
130
131```