微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

TP5.0 PHP+jQuery 实现ajax文件上传

首先前端代码

<div>
    <input type="file" id="monofile">
    <input type="button" value="上传" id="uploade">
</div>
<span style="color: red" id="img"></span>
</body>
</html>
<script>
    $("#uploade").click(function () {
        //FormData对象,是可以使用一系列的键值对来模拟一个完整的表单,然后使用XMLHttpRequest发送这个"表单"
        var formData = new FormData();
        formData.append("file",$("#monofile").get(0).files[0]);
        $.ajax({
            url:'http://www.item.skill.com/monofile',//接口地址
            type:'post',
            data:formData,
            dataType:'json',
            cache:false,//上传文件不需要缓存
            contentType:false, //在formData 对象里面已经声明了属性 这里需要关闭
            processData:false, //因为data值是FormData对象,不需要对数据做处理。
            success:function (res) {
                console.log(res);
                if (res.code==200){
                    $("#img").html(res.data); //上传后的路径展示到前端
                }else {
                    alert(res.msg);
                }
            }
        })
    })
</script>

后端代码

public function monoFile()
    {
        //获取文件
        $file = $this->request->file('file');
        //判断文件是否为空
        if (!empty($file)){
            // 移动到框架应用根目录/public/uploads/goods 目录下
            $info = $file->validate(['size'=>1024*1024*2,'ext'=>'jpg,png,gif'])->move(ROOT_PATH . 'public' . DS . 'uploads'.DS.'goods');
            if(!$info){
                // 上传失败获取错误信息
                $msg = $file->getError();
                self::fail(500,$msg);//这里是已经封装好的方法 返回状态码和提示信息的json即可
            }else{
                // 成功上传获取上传信息 返回数据
                $logoPath = DS.'uploads'.DS.'goods'.DS.$info->getSaveName();
                self::ok(200,'上传成功',$logoPath);
            }
        }
    }

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐