base64 解决图片移动端上传保存问题

在开发财经类移动端APP时,遇到iOS图片上传问题。通过base64编码实现曲线救国,创建js上传组件,获取图片base64数据,然后通过POST提交给后台解码保存,最终成功上传图片。
摘要由CSDN通过智能技术生成

base64 解决图片移动端上传保存问题

公司在开发一个财经类的移动端app,需要实现手机客户端更改头像功能,苦于对ios开发一窍不通,通过调用原生代码获取打开相机,调用图库都无法实现.只有通过base64 实现曲线救国.
`//上传图片的js
(function() {
window.LUploader = function(el, params) {
var _self = this;
_self.trigger=el;
_self.params = {
accept: ‘image/*’,
multiple: false,
maxsize: 102400,
imgObj: {},
showsize: false,
quality:0.1,
url: ”
}
for (var param in params) {
_self.params[param] = params[param];
}
_self.init();
};
LUploader.prototype.init = function() {
var _self = this;
_self.trigger.setAttribute(‘accept’, _self.params.accept);
_self.params.multiple && _self.trigger.setAttribute(‘multiple’, ”);

    var btn = document.querySelector('#' + _self.trigger.getAttribute('data-LUploader'));
    btn.addEventListener('click', function() {
        _self.trigger.click();
    });
    _self.trigger.addEventListener('change', function() {
        if (!this.files.length) return;
        var files = Array.prototype.slice.call(this.files);
        files.forEach(function(file, i) {
            if (!/\/(?:jpeg|png|gif)/i.test(file.type)) return;
            var reader = new FileReader();
            _self.params.imgObj.size = file.size / 1024 > 1024 ? (~~(10 * file.size / 1024 / 1024)) / 10 + "MB" : ~~(file.size / 1024) + "KB";
            var li = document.createElement("li");
            li.innerHTML = '<div class="LUploader-progress"><span></span></div>';
            if (_self.params.showsize) {
                var div_size = document.createElement('div');
                div_size.className = 'LUploader-size';
                div_size.textContent = _self.params.imgObj.size;
                li.appendChild(div_size);
            }
            var LUploaderList = _self.trigger.parentElement.querySelector('.LUploader-list');
            if (!_self.params.multiple) { //鍋囧鏄崟涓笂浼�                    if (_self.old_li) {
                    LUploaderList.removeChild(_self.old_li);
                } else {
                    _self.old_li = li;
                }
            }
            LUploaderList.appendChild(li);
            LUploaderList.parentElement.nextElementSibling.style['display'] = 'none';
            reader.onload = function() {
                var params = dataSet(_self.trigger);
                var url = _self.params.url;
                var result = this.result;
                var img = new Image();
                _self.params.imgObj.src = img.src = result;
                li.style['background-image'] = 'url(' + result + ')';
                if (result.length <= _self.params.maxsize) {
                    img = null;
                    _self.upload(url, params, result, file.type, li);
                    return;
              
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值