友情提示:javascript
若是保證項目當中只會一次上傳一張圖片的能夠不用下列方法:html
只用下載Cordova-plugin-camera獲取到圖片或視頻便可,將他們轉化爲base64格式,再將base64轉化爲File中,再將File放進formdata當中就能夠上傳,java
若是不能保證,就用下列方法:api
其餘獲取多張圖片的插件會默認將cordova-plugin-file安裝,這樣會改變js當中的file格式,因此放到formdata中上傳會出錯,如何修改請看上傳多張圖片函數
1.下載插件spa
cordova plugin add cordova-plugin-file-transfer //上傳圖片插件(一次只能上傳一張)插件
cordova plugin add cordova-plugin-camera //獲取圖片,視頻插件,一次只能夠獲取一張code
cordova plugin add cordova-plugin-file //會改變js中的file格式orm
2.獲取圖片,視頻視頻
navigator.camera.getPicture((imageData)=>{ console.log(imageData)
//上傳圖片視頻的函數
uploadImage(imageData) },(err)=>{ console.log(err) },{ //配置 destinationType: Camera.DestinationType.FILE_URI, sourceType: Camera.PictureSourceType.PHOTOLIBARY, allowEdit: true })
配置API:https://www.w3cschool.cn/cordova/cordova_camera.html
3.上傳
function uploadImage(fileURL){ var ft = new FileTransfer() var options = new FileUploadOptions()
//對應後臺的字段 options.fileKey = 'avatar' options.fileName = fileURL.substr(fileURL.lastIndexOf('/') + 1); var uri = '上傳的地址' ft.upload( fileURL, encodeURI(uri), (msg)=>{ console.log('SUCCESS:') console.log(msg) }, (err)=>{ console.log('ERROR:') console.log(err) }, options ) },