为了账号安全,请及时绑定邮箱和手机立即绑定

一步实现手机上传图片到网站

标签:
PHP JavaScript

公司一个项目是论坛社区,一般社区发帖就得把手机中的图片导入到电脑里,实在是太麻烦了,前几天听到运营在抱怨说。就决定做个手机传图功能。

大致思路:用户pc进入发帖页面,根据用户ID,时间加一些字段用base64加密生成二维码,然后微信扫面进入一个手机页面上传图片,pc端一个长轮询时时获取图片。

图片描述

刚开始找了很多插件,有的不支持微信浏览器。

上传图片之后把图片获取到编辑器里搞了很久,最终百度到了这个函数editor.execCommand(),可以把html内容写到编辑器里

下面贴一段获取图片的代码

<script>
//时时获取手机发帖
    $(function(){
        var setting = {
            type:'post',
            url:'index.php',
            data:{token:'token'},
            dataType:'json',
            success:function(res){
                var editor = UE.getEditor('advanced_editor');
                editor.execCommand("insertHTML",'<p><img style="max-width:580px;max-height:680px;" class="lazyload" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB/AAffA0nNPuCLAAAAAElFTkSuQmCC" data-original="'+res.rsm['img']+'"></p>',true);
                <!-- $(".aw-mod-head").append('<p><img style="max-width:580px;max-height:680px;" class="lazyload" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB/AAffA0nNPuCLAAAAAElFTkSuQmCC" data-original="'+res.rsm['img']+'"></p>'); -->

                console.log(res);
                window.setTimeout(function(){$.ajax(setting)},1000);
            },
            error:function(XMLHttpRequest,textStatus,errorThrown){ 

                window.setTimeout(function(){$.ajax(setting)},1000);

            }  
        }
        $.ajax(setting);
    })
</script>

public function index(){
            set_time_limit(0);

        $token = $_POST['token'];

        if(!$data = $this->model('article')->fetch_row('code_token',"token = '$token'")){

            echo "<script>alert('服务出错');</script>";exit;
        }

        $user_name = array_pop(explode('___',base64_decode($token)));

        $uid = $this->model('account')->fetch_one('users','uid',"user_name = '$user_name'");

        if($uid){

            while(true){

                $data = $this->model('article')->fetch_row('mobile_img','state = 0 and uid = ' . $uid, 'add_time ASC');

                if($data){

                    $this->model('article')->update('mobile_img',array('state'=>1),'id = ' . $data['id']);

                    H::ajax_json_output(AWS_APP::RSM($data, 1, null));

                    exit;
                }

                sleep(1);
            }

        }
}
点击查看更多内容
8人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消