HarmonyOS Web 图片上传功能失效

Web 的.onShowFileSelector ,接收H5页面的照片上传, 原来是可行的,现在的NEXT版本失效了。

HarmonyOS
2024-11-06 09:04:01
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
zbw_apple

参考demo:

// WebComponent.ets 
import { webview } from '@kit.ArkWeb'; 
import { picker } from '@kit.CoreFileKit'; 
import { BusinessError } from '@kit.BasicServicesKit'; 
 
@Entry 
@Component 
struct WebComponent { 
  controller: webview.WebviewController = new webview.WebviewController(); 
 
  build() { 
    Column() { 
      Web({ src: $rawfile('index.html'), controller: this.controller }) 
        .onShowFileSelector((event) => { 
          console.log('MyFileUploader onShowFileSelector invoked'); 
          const documentSelectOptions = new picker.PhotoSelectOptions(); 
          let uri: string | null = null; 
          const documentViewPicker = new picker.PhotoViewPicker(); 
          documentViewPicker.select(documentSelectOptions).then((documentSelectResult) => { 
            console.log('[documentSelectResult]',JSON.stringify(documentSelectResult)) 
            console.log('[documentSelectResult]',JSON.stringify(documentSelectResult.photoUris[0])) 
            uri = documentSelectResult.photoUris[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; 
        }) 
    } 
  } 
}
// index.html 
<!DOCTYPE html> 
  <html> 
  <head> 
  <meta name="viewport" content="width=device-width, initial-scale=1.0" charset="utf-8"> 
  </head> 
  <body> 
  <form id="upload-form" enctype="multipart/form-data"> 
  <input ref="album" type="file" id="upload" name="upload" accept="*/*" onchange="showPic()"/> 
  <p id="image_preview">图片预览</p> 
  <img id="image" width="100%"/> 
  </form> 
  </body> 
  </html> 
  <script> 
  function showPic() { 
    let event = this.event; 
    let tFile = event ? event.target.files : []; 
    if (tFile === 0) { 
      document.getElementById('image_preview').style.display = 'block'; 
      document.getElementById('image_preview').innerHTML = "未选择图片"; 
      return 
    } 
    document.getElementById('image').setAttribute('src', URL.createObjectURL(tFile[0])); 
    document.getElementById('image_preview').style.display = 'block'; 
    document.getElementById('image').style.display = 'block'; 
  } 
  </script>
分享
微博
QQ
微信
回复
2024-11-06 15:53:38
相关问题
Web组件如何实现文件上传功能
592浏览 • 1回复 待解决
如何在HarmonyOS中实现图片上传功能
494浏览 • 0回复 待解决
HarmonyOS web如何上传图片
134浏览 • 1回复 待解决
HarmonyOS web上传文件和图片
403浏览 • 1回复 待解决
通过web上传图片并进行预览
1118浏览 • 1回复 待解决
HarmonyOS h5上传图片功能,超时
178浏览 • 1回复 待解决
HarmonyOS h5 web上传图片,文件的demo
233浏览 • 1回复 待解决
HarmonyOS 图片上传
179浏览 • 1回复 待解决
HarmonyOS web组件上传文件
452浏览 • 1回复 待解决
HarmonyOS 图片上传失败
242浏览 • 1回复 待解决
HarmonyOS 无法上传图片
85浏览 • 1回复 待解决
HarmonyOS 上传图片问题
229浏览 • 1回复 待解决
HarmonyOS 上传图片异常
298浏览 • 1回复 待解决
HarmonyOS 上传图片失败
376浏览 • 1回复 待解决
HarmonyOS axios如何上传图片
205浏览 • 1回复 待解决
HarmonyOS图片上传相关问题
609浏览 • 1回复 待解决