以前上传图片,文件需要借助插件,不借助插件根本写不了(主要还是太菜)。今天小菜记录下用formData
API上传,非常简单。
1.上传图片
这个demo是用jq写的,不要问我为什么,jq获取dom太方便了。这个例子可以用js,jq,mvvc框架都可以.
记录angular 1.6 绑定chang方法 onchange="angular.element(this).scope().uploadPortrait(event)"
方法:upLoadImg(event)
参数:event
function upLoadImg(event){
let imgInfo = event.target.files[0];
//效验
//根据imgInfo中name,size,type,lastModifiedDate来效验
//预览
let windowURL = window.URL || window.webkitURL;
let imgsrc = windowURL.createObjectURL(imgInfo); //获取二进制路径
//检测图片宽,高
let _img = new Image();
_img.onload = function(){
let imgW = _img.width,
imgH=_img.height;
if(imgW!= 200 || imgH != 200){
alert('请上传200px * 200px 图片');
return false;
}
};
_img.src = imgsrc;
//上传
let formData = new FormData(); //创建 FormData对象
formData.append('file', imgInfo); //添加数据
$.post(url,formData,function(data){
//上传成功后做某些事
});
}
2.获取本地图片base64
let reader = new FileReader();
reader.readAsDataURL(imgInfo);
reader.onload=function(){
let imgBase64 = this.result;
console.log(imgBase64);
}
3.裁剪图像
canvas图像裁剪在canvas/头像裁剪
, 头像裁剪传送门“http://waliblog.com/canvas/2018/02/24/portraitNailor.html”