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) }) })