CI框架 OSS图片上传

1.前端页面(这里前端用的layui)


2.JS部分

layui.use(['form', 'layedit', 'laydate'], function() {
        var form = layui.form
            , layer = layui.layer
            , layedit = layui.layedit
            , laydate = layui.laydate;
});
var img_path =""
    layui.use('upload', function(){
        var $ = layui.jquery
            ,upload = layui.upload;


        //普通图片上传
        var uploadInst = upload.render({
            elem: '#test1'
            ,url: 'admin/Game/testImg'
            ,before: function(obj){
                //预读本地文件示例,不支持ie8
                window['objs'] = obj;
            }
            ,done: function(res){
                console.log(res);
                //如果上传失败
                if(res.code > 0){
                    return yly_msg(2,res.msg);
//                    return layer.msg('上传失败');
                }else{
                    objs.preview(function(index, file, result){
                        $('#demo1').attr('src', result); //图片链接(base64)
                    });
                    img_path = res.data;
//                    layer.msg(res.msg);
                    yly_msg(2,res.msg);
                }
                //上传成功
            }
            ,error: function(){
                //演示失败状态,并实现重传
                var demoText = $('#demoText');
                demoText.html('<span style="color: #FF5722;">上传失败</span> <a class="layui-btn layui-btn-mini demo-reload">重试</a>');
                demoText.find('.demo-reload').on('click', function(){
                    uploadInst.upload();
                });
            }
        });
    });

3.后台代码:

 <由于使用CI框架,其他框架可以参考,部分代码写法不同>

 /**
     * [testImg 上传图片处理]
     * @return [type] [description]
     */
    public function testImg(){
        require_once APPPATH.'third_party/oss/autoload.php';
        $config['upload_path']      = 'meilihua/games/';
        $config['allowed_types']    = 'jpg|png|JPG|PNG';
        $config['file_name']        = date('YmdHis').rand(111,999).".png";
        // if (!is_dir($config['upload_path'])) mkdir($config['upload_path'], 0777);
        if(!is_dir($config['upload_path'])){
            if(!is_dir('meilihua/')){
                mkdir('meilihua/', 0777);
            }
            mkdir($config['upload_path'], 0777);
        }

        $this->load->library('upload', $config);
        if($this->upload->do_upload('file')) {
            $data = $this->upload->data('file_name');
            $info=$config["file_name"];
            $src=$config['upload_path'].$info;
            // 上傳到oss
            $endpoint = "oss-cn-hangzhou.aliyuncs.com";
            $accessKeyId = "PARnUY8sBJjv5d90";
            $accessKeySecret = "n8pEPnHX0N0o9bDaYkoa6ebbsHrIhc";
            $bucket = "meilihua";
            $object = "meilihua/games/".$info;
            // $download_file = "download.jpg";
            $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);
            //先把本地的example.jpg上传到指定$bucket, 命名为$object
            $ossClient->setTimeout(3600);
            $ossClient->setConnectTimeout(5);
            try{
                $ossClient->uploadFile($bucket, $object, $src);
            } catch(OssException $e) {
                printf(__FUNCTION__ . ": FAILED\n");
                printf($e->getMessage() . "\n");
                return;
            }
            $res=array(
                'code' => 0,
                'msg' => '上传成功!',
                'data' => $object
            );
            echo json_encode($res);
            exit;
        } else {
            //获取上传失败以后的错误提示
            $info=$this->upload->display_errors();
            $res=array(
                'code' => 1,
                'msg' => $info
            );
            echo json_encode($res);
            exit;
        }
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值