jQuery教程

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

本文主要是介绍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);
            }
        }
    }

 

这篇关于TP5.0 PHP+jQuery 实现ajax文件上传的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!