thinkphp5怎么加layui实现图片上传功能

来源:undefined 2024-12-31 03:38:16 1047

网站中很多表单都会用到上传图片,logo,照片,用户也会上传图片,这个时候网站就需要一个上传图片的功能,而且在上传后希望能预览一下看上传的对不对。

thinkphp5加layui实现图片上传功能(带图片预览)思路,异步传输图片并预览,将异步上传后的值返回表单隐藏域再提交。

1、引入文件

首先,要引入jQuery文件,这是必须的

1

<link><script></script>

登录后复制

2、HTML部分

1

登录后复制
上传图片 @@##@@  />
保存

3、功能实现

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

<script>

layui.use([&#39;form&#39;,&#39;layer&#39;,&#39;upload&#39;],function(){

$ = layui.jquery;

var form = layui.form;

layer = layui.layer;

var upload = layui.upload;

//执行实例

var uploadInst = upload.render({

elem: &#39;#upload_img&#39; //绑定元素

,url: &#39;/admins.php/admins/video/upload_img&#39; //上传接口

,accept:&#39;images&#39;

,done: function(res){

//上传完毕回调

$(&#39;#pre_img&#39;).attr(&#39;src&#39;,res.msg);

$(&#39;input[name="img"]&#39;).val(res.msg);

}

,error: function(){

//请求异常回调

}

});

});

// 保存

function save(){

var title = $.trim($(&#39;input[name="title"]&#39;).val());

var url = $.trim($(&#39;input[name="url"]&#39;).val());

if(title == &#39;&#39;){

layer.msg(&#39;请输入影片名称&#39;,{&#39;icon&#39;:2,&#39;anim&#39;:6});

return;

}

if(url == &#39;&#39;){

layer.msg(&#39;请输入影片地址&#39;,{&#39;icon&#39;:2,&#39;anim&#39;:6});

return;

}

$.post(&#39;/admins.php/admins/video/save&#39;,$(&#39;form&#39;).serialize(),function(res){

if(res.code>0){

layer.msg(res.msg,{&#39;icon&#39;:2,&#39;anim&#39;:2});

}else{

layer.msg(res.msg,{&#39;icon&#39;:1});

setTimeout(function(){parent.window.location.reload();},1000);

}

},&#39;json&#39;);

}

</script>

登录后复制

4、后台处理

图片上传

1

2

3

4

5

6

7

8

9

10

11

12

13

public function upload_img(){

$file = request()-&gt;file(file);

if($file==null){

exit(json_encode(array(code=&gt;1,msg=&gt;没有文件上传)));

}

$info = $file-&gt;move(ROOT_PATH.public.DS.uploads);

$ext = ($info-&gt;getExtension());

if(!in_array($ext,array(jpg,jpeg,gif,png))){

exit(json_encode(array(code=&gt;1,msg=&gt;文件格式不支持)));

}

$img = /uploads/.$info-&gt;getSaveName();

exit(json_encode(array(code=&gt;0,msg=&gt;$img)));

}

登录后复制
保存内容

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

public function save(){

$id = (int)input(post.id);

$data[title] = trim(input(post.title));

$data[channel_id] = (int)input(post.channel_id);

$data[charge_id] = (int)input(post.charge_id);

$data[area_id] = (int)input(post.area_id);

$data[img] = trim(input(post.img));

$data[url] = trim(input(post.url));

$data[keywords] = trim(input(post.keywords));

$data[desc] = trim(input(post.desc));

$data[status] = (int)input(post.status);

if($data[title] == ){

exit(json_encode(array(code=&gt;1,msg=&gt;影片名称不能为空)));

}

if($data[url] == ){

exit(json_encode(array(code=&gt;1,msg=&gt;影片地址不能为空)));

}

if($id){

$this-&gt;db-&gt;table(video)-&gt;where(array(id=&gt;$id))-&gt;update($data);

}else{

$data[add_time] = time();

$this-&gt;db-&gt;table(video)-&gt;insert($data);

}

exit(json_encode(array(code=&gt;0,msg=&gt;保存成功)));

}

登录后复制

以上就是thinkphp5怎么加layui实现图片上传功能的详细内容,更多请关注php中文网其它相关文章!

最新文章