需求:用户上传的文件不可大于3M
代码:
这个方法可以将传入的图片信息,压缩至3M以下,并返回base64信息;
$scope.myReadAsDataURL = function (file) {
return new Promise(function (resolve, reject) {
// 最终base64
var resultImg = '';
var _fileSize = (file.size / (1024 * 1024)).toFixed(2);
// 生成一个文件读取的对象
var reader = new FileReader();
// 判断是否需要压缩
if (_fileSize > 4) {
// console.log("大小为" + _fileSize + "M,要压缩")
// 计算比例
// 大于4M则需要压缩,根据文件大小与3M的比例压缩图片,这样只需要压缩一次即可小于3M
var _scale = (3 / _fileSize).toFixed(2);
// 创建一个img
var _img = new Image();
reader.onloadend = functi