php文件上传逻辑,文件上传 · 基于thinkphp5小功能设计与实现 · 看云

本章节主要讲解如果灵活运用layui和thinkphp5进行无刷新图片上传

#### 1.上传接口书写

1.建立一个Upliad.php上传控制器

2.在控制器下首先建立一个受保护的(protected)的_initialize方法,在这个方法中要进行验证用户是否进行登陆,如果没有进行登陆,需要跳转到登录页面,如果有登录就执行下面的上传方法

3.在控制器建立上传方法

业务逻辑如下:

1. 获取表单上传文件

` $file = $request->file('file');`

2. .移动到框架应用根目录/public/uploads/ 目录下

~~~

$info = $file->move(ROOT_PATH . 'public' . DS . 'uploads');

~~~

3 .返回上传后的信息。无论是成功还是失败都需要返回信息,返回格式必须如下格式

~~~

{

"code": 0

,"msg": ""

,"data": {

"src": "http://cdn.abc.com/123.jpg"

}

}

~~~

# 详细代码:[Source Code](上传接口.md)

#### 2.视图设计

1. 导入的js和css文件

2. html代码,添加一个上传input

``

3. js代码的实现

* 加载upload模块

* 详细参数

| | | |

| --- | --- | --- |

| 参数 | 类型 | 描述 |

| elem | string | 指定元素的选择器,默认直接查找class为layui-upload-file的元素 |

|url|string|上传文件的接口|

|method|string|设置http类型,如:post、get。默认post。也可以直接在input设置lay-method="get"来取代。|

|before|function|执行上传前的回调|

|success|function|上传成功后的回调|

|type|string|设定上传的文件类型,也可以直接在input设置lay-type=""来取代(详细见下文)。|

|ext|string|自定义可支持的文件扩展名,也可以直接在input设置lay-ext=""来取代(详细见下文)。|

|unwrap|boolean|是否不改变input的样式风格。默认false|

* 官网案例说明

我们上传文件是借助type为file的input标签来完成的,但非常遗憾的是,它不能很好地与其它表单元素并存,所以我们常常要单独为它做一个业务层面的“异步上传”,即先让图片上传,再和其它表单一起提交保存。下面就是一个非常普通的input,它可以出现你页面的任何位置。

~~~

~~~

另外class="layui-upload-file"不是必须的,她只是会让你的input短暂性隐藏,并且在调用upload方法时不用设置elem。要使得这个input能正常地用起来,你只需要执行下述方法:

~~~

layui.upload({

url: '上传接口url'

,success: function(res){

console.log(res); //上传成功返回值,必须为json格式

}

});

~~~

实现异步上传官网说明地址:http://www.layui.com/doc/modules/upload.html

# 详细代码:[Source Code](视图.md)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值