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) }) })
相關文章
相關標籤/搜索