cordova图片上传,视频上传(上传多个图片,多个视频)

1.下载插件(下载须要的便可)数组

cordova plugin add cordova-plugin-imagepicker(这个插件选择图片较为好看,而且只能获取图片)app

cordova plugin add cordova-plugin-camera(获取单个视频,单个图片)ide

cordova plugin add cordova-plugin-media-capture(获取音频,视频,拍照)函数

2.上传多张图片或视频的数组(视频图片能够放在同一数组里)oop

var imgArr = []spa

3.cordova plugin add cordova-plugin-imagepicker插件

ImagePicker.getPictures((res) => {
     res.images.forEach((val) => {
           //塞到数组里
          imArr.push(val.uri)
    })
},(err)=>{console.log(err)},
{
    //配置
    quality: 80, //图片质量
    maximumImagesCount: 9  //限制上传的数量
}
}

cordova plugin add cordova-plugin-media-capturecode

navgator.device.capture.captureVideo(
      (mediaFiles) => {
           console.log(mediaFile[0])
           imgArr.push(mediaFile[0].localURL)
      },
      (err)=>{console.log(err)},
      options
)
options = {
     limit: 2,
     duration
}

cordova plugin add cordova-plugin-camera请看上传单个图片orm

4.批量上传(将imgArr上传)视频

除了cordova plugin add cordova-plugin-camera插件外,其他两个会默认安装Cordova-plugin-file

他会改变js中的file属性,因此这里要将他改回来,就能够了,用本身的接口经过formdata上传

var formdata = new Formdata()
var loopNum = 0
imgArr.forEach((val,index) => {
//cordova-plugin-file插件的方法 resolveLocalFileSystemURL(val,(fileEntry)
=>{
//获取file对象,和js的file不同 fileEntry.file((file)
=>{
//读取
var reader = new FileReader() reader.onloadend = e => {
              //转化为Blob格式 const the_file
= new Blob([e.target.result],{type:file.type})
              //存入便可 formdata.append(
'image'+(index+1),the_file,file.name)
              //防止onloadend事件不按顺序执行 loopNum
++ if(loopNumm === imgArr.length){ //requestImgs函数是触发接口函数,本身写,将formdata传进入 requestImgs(formdata) } }          //触发onloadend事件 reader.readAsArrayBuffer(file) }) })