Use formData as conteiner e.g. say @squiroid
In html code
<form ng-submit="vm.uploadFile()"> <input type="file" id="filePhoto" name="file"> <button type="submit">Save</button> </form> {{vm.previewImage()}}
In my controller
vm.previewImage = previewImage; function previewImage(){ console.info("vm.file "+vm.file); var imageLoader = document.getElementById('filePhoto'); console.info(imageLoader); imageLoader.addEventListener('change', handleImages, false); function handleImages(e) { console.info("entra handleImage"); vm.file = e.target.files[0]; console.info("archivo "); console.info(vm.file); } } vm.uploadFile = uploadFile; function uploadFile() { return dataFactory.uploadFile( vm.file) .then(function successCallback(response) { console.info('uploadFile success'); console.info(response); }, function errorCallback(response) { console.info('updauploadFileteUser fail'); console.info(response); }); }
In DataFactory
function updateUser(token,file,username,email,lenguaje,colapsarMenu){ var formData=new FormData(); formData.append('file',file); //append more params if you want return $http .post('/uploadFile', formData,{ transformRequest:angular.identity, headers: { //Optional token bearer 'Authorization': 'Bearer '+token, 'Content-type':undefined } }); }
source share