ajax表单上传图片和数据

摘要:
$file){$this-˃error;}//验证$map=['ext'=˃'jpg,png,bmp,jpeg,gif','size'=˃'3000000'//3MB文件大小单位是字节];$info=$file-˃validate-˃move;if(!','admin/banner/bannerlist');}else{$this-˃error;}}}模型classBannerextendsModel{//文件上传publicfunctionupload{$validate=newValidateBanner();if(!

js

    $('#addbtn').click(function() {
            var form = document.getElementById("img-form");//获取表单的数据
            var formdata = new FormData(form);//格式化表单数据
console.log(formdata);
            $.ajax({
                type: "POST",
                async:false,//同步请求
                processData: false,//不处理发送的数据
                contentType: false,//不设置Content-Type请求头
                dataType: "json",
                url: "{:url('admin/banner/upload')}",
                data: formdata,
                success: function(res) {
                    if (res.code == 1) {
                        layer.msg(res.msg, {
                            icon: 6,
                            time: 2000}, function() {
                            window.location.href =res.url;
                        })
                    } else{
                        layer.open({
                            title: '添加失败',
                            content: res.msg,
                            icon: 5,
                            anim: 6})
                    }
                }
            });
        })

控制器

    //上传图片
    public functionupload()
    {
        if (request()->isPost()) {
            $data =[
                'title' => input('title'),
                'desc' => input('desc'),
                'link' => input('link')
            ];
            $file = request()->file('image');
            if (!$file) {
                $this->error($file->getError());
            }
            //验证
            $map =[
                'ext' => 'jpg,png,bmp,jpeg,gif',
                'size' => '3000000' //3MB 文件大小单位是字节
];
            $info = $file->validate($map)->move(ROOT_PATH . 'public' . DS . 'uploads');
            if (!$info) {
                $this->error($file->getError());
            }
            $data['path'] = DS . 'uploads' . DS . $info->getSaveName();
            $res = model('Banner')->upload($data);
            if ($res == 1) {
                $this->success('添加成功!', 'admin/banner/bannerlist');
            } else{
                $this->error($res);
            }
        }
    }

模型

class Banner extendsModel
{
    //文件上传
    public function upload($data)
    {
        $validate = newValidateBanner();
        if (!$validate->scene('upload')->check($data)) {
            return $validate->getError();
        }
        $res = $this->allowField(true)->save($data);
        if ($res) {
            return 1;
        } else{
            return '上传失败!';
        }
    }
}

验证器

class Banner extendsValidate
{
    protected $rule =[
        'title|标题' => 'require',
        'link|链接' => 'require',
        'desc|描述' => 'require'];
    protected $scene =[
        'upload' => ['title', 'link', 'desc']
    ];
}

免责声明:文章转载自《ajax表单上传图片和数据》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇【原创】大叔经验分享(4)Yarn ResourceManager页面如何实现主被自动切换使用fastDFS上传和下载图片文件下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

跨站请求伪造(CSRF)

1. 什么是跨站请求伪造(CSRF)   CSRF(Cross-site request forgery跨站请求伪造,也被称为“One Click Attack”或者Session Riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。尽管听起来像跨站脚本(XSS),但它与XSS非常不同,并且攻击方式几乎相左。XSS利用站点内的信任用户,而...

18款 非常实用 jquery幻灯片图片切换

1、jquery图片滚动仿QQ商城带左右按钮控制焦点图片切换滚动jquery图片特效制作仿腾讯QQ商城首页banner焦点图片轮播切换效果,带索引按钮控制和左右按钮控制图片切换。 查看演示>>          下载地址 2、jquery图片切换插件制作图片层叠缩放展示效果jquery图片插件制作图片等比列缩放层叠样式,图片叠加展示。点击层...

SSH框架下ajax调用action并生成JSON再传递到客户端【以get和post方式提交】

需要完成的任务: 主要是把JSP页面上图片ID传给服务器端,服务器读取cookie看是否有username,如果有则根据ID读取MongoDB数据库,读出图片URL,再存放到mysql中的collection数据库中,实现了收藏功能。 第一步:就是使用ajax实现前后台的交互。 jsp页面代码: <a id="1"class="bsc"onclick...

vue实战(4):postman测试数据、封装ajax、使用vuex管理状态

书到用时方恨少 这个阶段涉及到了vuex,本来想着不慌,用起来,使用的过程中问题还真不少 本篇涉及到的内容: ---postman 测试数据 ---封装 ajax 请求函数 ---封装接口请求函数 ---使用 vuex 管理状态 ---获取首页相关数据 0. 其它 vue实战(1):准备与资料整理vue实战(2):初始化项目、搭建底部导航路由vue实战...

解决ajax异步请求数据后swiper不能循环轮播(loop失效)问题、滑动后不能轮播的问题。

问题描述: 1、我使用axios异步请求后台的图片进行渲染后不能实现循环轮播,也就是loop失效,但是静态写死的情况下不会出现这种问题。 2、 分析: swiper的机制是:初始化的时候将swiper-warpperslide类下的最后一个swiper-slide块克隆到第一个的位置,将第一个swiper-slide块克隆岛最后一个的位置,然后自动扫描sw...

Ajax跨域CORS

在Ajax2.0中多了CORS允许我们跨域,但是其中有着几种的限制:Origin、Methods、Headers、Credentials 1.Origin 当浏览器用Ajax跨域请求的时候,会带上一个请求头“Origin: 协议://页面域名”,而服务器需要返回一个响应头“Access-Control-Allow-Origin: 协议://对应域名“,如果...