ajax异步上传图片(TP5)

Posted on 2017-11-14 17:57  pai片儿的  阅读(6081)  评论(0编辑  收藏  举报

直接上代码

PHP代码如下

/**
     * 上传
     */
    public function upload_photo(){
        $file = $this->request->file('file');
        $uid = session('ydyl_weixin_user.id');
        // if(empty($uid)){
        //     return ['code'=>404,'msg'=>'用户未登录'];
        // }
                if(!empty($file)){
                    // 移动到框架应用根目录/public/uploads/ 目录下
                    $info = $file->validate(['size'=>1048576,'ext'=>'jpg,png,gif'])->rule('uniqid')->move(ROOT_PATH . 'public' . DS . 'uploads');
                    $error = $file->getError();
                    //验证文件后缀后大小
                    if(!empty($error)){
                        dump($error);exit;
                    }
                    if($info){
                        // 成功上传后 获取上传信息
                        // 输出 jpg
                        $info->getExtension();
                        // 输出 20160820/42a79759f284b767dfcb2a0197904287.jpg
                        $info->getSaveName();
                        // 输出 42a79759f284b767dfcb2a0197904287.jpg
                        $photo = $info->getFilename();

                    }else{
                        // 上传失败获取错误信息
                        $file->getError();
                    }
                }else{
                    $photo = '';
                }
        if($photo !== ''){
            return ['code'=>1,'msg'=>'成功','photo'=>$photo];
        }else{
            return ['code'=>404,'msg'=>'失败'];
        }
    }

HTML代码如下

<div class="upload-btn">
    <input type="file" name="pic1" id="pic" accept="image/gif,image/jpeg,image/x-png"/>
</div>
<script>
    //上传图片
    $('#pic').change(function(event) {
        var formData = new FormData();
        formData.append("file", $(this).get(0).files[0]);
        $.ajax({
            url:'http://www.juplus.cn/vdma/index/ydyl/upload_photo',
            type:'POST',
            data:formData,
            cache: false,
            contentType: false,    //不可缺
            processData: false,    //不可缺
            success:function(data){
                console.log(data)
            }
        });
    });
</script>

 

有写错的请私信我,谢谢