HarmonyOS web如何上传图片

HarmonyOS
2024-12-27 16:12:05
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
superinsect

可以参考如下demo:

ArkTS代码:

import web_webview from '@ohos.web.webview'
import picker from '@ohos.file.picker'
import { BusinessError } from '@ohos.base'

@Entry
@Component
struct WebComponent {
  controller: web_webview.WebviewController = new web_webview.WebviewController()
  //定义一个全局的string类型的数组,用来存放通过picker拉起后选择完图片后图片的uri
  @State uris: Array<string> = []
  aboutToAppear() {
    web_webview.WebviewController.setWebDebuggingAccess(true);
  }
  build() {
    Column() {
      Image(this.uris[0]).width(100).height(100)
      //用来展示选择的图片
      Image(this.uris[1]).width(100).height(100)
      //用来展示选择的视频
      Video({ src: this.uris[0]}).height(100)
      Web({ src: $rawfile('i.html'), controller: this.controller })
        .javaScriptAccess(true)
        .domStorageAccess(true)
        .onShowFileSelector((event) => {
          console.log('MyFileUploader onShowFileSelector invoked')
          const photoSelectOptions = new picker.PhotoSelectOptions();
          // 过滤选择媒体文件类型为IMAGE_VIDEO_TYPE
          photoSelectOptions.MIMEType = picker.PhotoViewMIMETypes.IMAGE_VIDEO_TYPE;
          // 选择媒体文件的最大数目
          photoSelectOptions.maxSelectNumber = 2;
          //let uris: Array<string> = [];
          const photoViewPicker = new picker.PhotoViewPicker();
          photoViewPicker.select(photoSelectOptions).then((photoSelectResult: picker.PhotoSelectResult) => {
            this.uris = photoSelectResult.photoUris;
            console.info('photoViewPicker.select to file succeed and uris are:' + this.uris);
          }).catch((err: BusinessError) => {
            console.error(`Invoke photoViewPicker.select failed, code is ${err.code}, message is ${err.message}`);
          })
          return false
        })
    }
  }
}

html代码:

<!DOCTYPE html>
  <html>
  <head>
  <meta name="viewport" content="width=device-width, initial-scale=1.0" charset="utf-8">
  <script>
  window.onload = function() {
  // 获取文件输入元素
  var fileInput = document.getElementById('upload');

  // 监听文件输入的改变事件
  fileInput.addEventListener('change', function(e) {
    // 获取选中的文件
    var file = e.target.files[0];
    // 创建一个FileReader对象
    var reader = new FileReader();

    // 定义文件读取完成后的回调函数
    reader.onloadend = function() {
      // 获取图片元素
      var img = document.getElementById('preview');
      // 将读取到的结果赋值给图片元素的src属性
      img.src = reader.result;
    }

    // 读取文件内容
    if (file) {
      reader.readAsDataURL(file);
    }
  });
}
  </script>
  </head>
  <body>
  <form id="upload-form" enctype="multipart/form-data">
  <!-- 修改type属性为camera -->
  <input type="file" id="upload" name="upload" accept="video/mp4" capture="camera"/>
  <!-- 添加一个图片元素用于展示图片 -->
  <img id="preview" />
  </form>
  </body>
  </html>
分享
微博
QQ
微信
回复
2024-12-27 17:21:47
相关问题
HarmonyOS web上传文件和图片
528浏览 • 1回复 待解决
HarmonyOS Web 图片上传功能失效
535浏览 • 1回复 待解决
通过web上传图片并进行预览
1278浏览 • 1回复 待解决
HarmonyOS h5 web上传图片,文件的demo
444浏览 • 1回复 待解决
HarmonyOS axios如何上传图片
362浏览 • 1回复 待解决
HarmonyOS 图片上传
269浏览 • 1回复 待解决
HarmonyOS如何实现图片上传
702浏览 • 1回复 待解决
HarmonyOS axios如何上传多张图片
383浏览 • 1回复 待解决
HarmonyOS web组件上传文件
597浏览 • 1回复 待解决
HarmonyOS 图片上传失败
396浏览 • 1回复 待解决
HarmonyOS 无法上传图片
332浏览 • 1回复 待解决
HarmonyOS 上传图片失败
650浏览 • 1回复 待解决
HarmonyOS 上传图片问题
297浏览 • 1回复 待解决
HarmonyOS 上传图片异常
358浏览 • 1回复 待解决
HarmonyOS 如何上传本地图片
423浏览 • 1回复 待解决
Web组件如何实现文件上传功能?
678浏览 • 1回复 待解决
HarmonyOS 图片上传文件过大如何处理
392浏览 • 1回复 待解决
HarmonyOS图片上传相关问题
764浏览 • 1回复 待解决
HarmonyOS 如何压缩图片之后再上传
285浏览 • 1回复 待解决
HarmonyOS 如何使用Axios框架上传图片
337浏览 • 1回复 待解决
HarmonyOS 图片上传问题咨询
334浏览 • 1回复 待解决
HarmonyOS 图片上传httpRequest格式问题
291浏览 • 1回复 待解决
HarmonyOS如何上传图片到模拟器相册
1471浏览 • 1回复 待解决