往期鸿蒙全套实战文章必看:(文中附带鸿蒙全栈学习资料)
- 鸿蒙开发焦点知识点,看这篇文章就够了
- 最新版!鸿蒙HarmonyOS Next应用开发实战学习路线
- 鸿蒙HarmonyOS NEXT开发技能最全学习路线指南
- 鸿蒙应用开发实战项目,看这一篇文章就够了(部分项目附源码)
上传文件
Web组件支持前端页面选择文件上传功能,应用开发者可以使用onShowFileSelector()接口来处理前端页面文件上传的哀求,如果应用开发者不做任何处理,Web会提供默认举动来处理前端页面文件上传的哀求。
下面的示例中,当用户在前端页面点击文件上传按钮,应用侧在onShowFileSelector()接口中收到文件上传哀求,在此接口中开发者将上传的本地文件路径设置给前端页面。
- 应用侧代码。
- // xxx.ets
- import { webview } from '@kit.ArkWeb';
- import { BusinessError } from '@kit.BasicServicesKit';
- import { picker } from '@kit.CoreFileKit';
- @Entry
- @Component
- struct WebComponent {
- controller: webview.WebviewController = new webview.WebviewController();
- build() {
- Column() {
- Web({ src: $rawfile('local.html'), controller: this.controller })
- .onShowFileSelector((event) => {
- console.log('MyFileUploader onShowFileSelector invoked');
- const documentSelectOptions = new picker.DocumentSelectOptions();
- let uri: string | null = null;
- const documentViewPicker = new picker.DocumentViewPicker();
- documentViewPicker.select(documentSelectOptions).then((documentSelectResult) => {
- uri = documentSelectResult[0];
- console.info('documentViewPicker.select to file succeed and uri is:' + uri);
- if (event) {
- event.result.handleFileList([uri]);
- }
- }).catch((err: BusinessError) => {
- console.error(`Invoke documentViewPicker.select failed, code is ${err.code}, message is ${err.message}`);
- })
- return true;
- })
- }
- }
- }
复制代码 - local.html页面代码。
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="utf-8">
- <title>Document</title>
- </head>
- <body>
- <!-- 点击上传文件按钮 -->
- <input type="file" value="file"></br>
- <meta name="viewport" content="width=device-width" />
- </body>
- </html>
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |