Cette fois, je vous apporte angularJS+Ionic pour implémenter la fonction de téléchargement d'images mobiles, et angulaireJS+Ionic pour implémenter la fonction de téléchargement d'images mobiles Quelles sont les précautions
. , comme suit C'est un cas pratique, jetons-y un coup d'œil. Nous rencontrons souvent le problème du téléchargement d'images dans le développement front-end. Il existe de nombreuses solutions en ligne, mais certains plug-ins de téléchargement d'images ont des plug-ins attachés, donc en raison d'un problème de téléchargement d'image, vous pouvez Nous devons introduire d'autres plug-ins. Dans le projet, le projet deviendra indescriptible avec le temps, et parfois il y aura des conflits entre les plug-ins, nous pouvons donc écrire nous-mêmes une méthode de téléchargement d'images. La démo d'aujourd'hui est un projet de compte public mobile WeChat réalisé pour un ami. L'architecture du projet adopte angulaire+ionique, car il est beaucoup plus pratique d'utiliser jQuery sur DOM, mais jQuery est relativement lourd, donc à la fin j'ai choisi d'utiliser le léger. zepto pour gérer le projet dom pour fonctionner. Une exigence du projet est de télécharger des travaux personnels. Pour implémenter la fonction, de nouveaux objets H5 FormData, XMLHttpRequest et FileReader sont requis. Seuls ces trois objets sont nécessaires, ne parlons pas beaucoup du code. fonction1 :$scope.imgList = []; $scope.setUploader = function () { var files = document.getElementById('photo'); files.click(); $(files).unbind().on('change',function (e) { var file = e.target.value; if (!/.(jpg|jpeg|png|GIF|JPG|png)$/.test(file)) { common.toast('图片类型必须是jpeg,jpg,png中的一种'); return false; }; fsubmit(); readAsBinaryString(); }); };
function fsubmit() { var itemImg = {}; var form=document.getElementById("form1"); console.log('form',form) var formData=new FormData(form); formData.append('wxdesigner_sid',$.fn.cookie('wxdesigner_sid')); formData.append('id',$scope.masterInfo.id); formData.append('pc','1'); var oReq = new XMLHttpRequest(); oReq.onreadystatechange=function(){ if(oReq.readyState==4){ if(oReq.status==200){ var json=JSON.parse(oReq.responseText); console.log(json) if(json.Success) { itemImg = json.Data; $scope.imgList=itemImg; console.log($scope.imgList) $scope.$apply(); itemImg = {}; } } } }; console.log(oReq) console.log(formData) oReq.open("POST", common.api+"Wxdesigner/Designer/uploadworks"); oReq.send(formData); return false; }; //判断浏览器是否支持FileReader接口 if(typeof FileReader == 'undefined'){ //使选择控件不可操作 file.setAttribute("disabled","disabled"); }
function readAsBinaryString(){ var file = document.getElementById('photo').files[0]; console.log(file) var reader = new FileReader(); //将文件以二进制形式读入页面 reader.readAsDataURL(file); reader.onload=function(f){ $scope.masterInfo.thumblist.push(f.currentTarget.result) console.log($scope.masterInfo) $scope.$apply() } }
Explication détaillée de l'encapsulation de liaison bidirectionnelle vue2.x
Npm en tant qu'outil de ligne de commande cli
Promise implémente l'asynchrone
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!