ThinkPHP5处理图片文件上传

    在做项目实际开发中,会经常遇到文件上传,比如图片。用ThinkPHP5框架处理图片上传,参照ThinkPHP5开发教程。

    示例如下:

    首先先在application/admin/controller文件夹下面定义TestImage.php文件

    TestImage.php:

<?php
namespace app\admin\controller;
use think\Controller;
//创建一个类TestImage,继承基类Controller
class TestImage extends Controller
{
    //定义一个方法名upload_img,和view/TestImage文件夹下面的upload_img同名,提交信息时匹配文件
    public function upload_img(){
        //判断是否是post 方法提交的
        if(request()->isPost()){
            $data=input('post.');
            //处理图片上传
            //提交时在浏览器存储的临时文件名称
            if($_FILES['image']['tmp_name']){
                $data['image']=$this->upload();
            }
            //讲传入的图片写入到test_images表中,使用Thinkphp5自定义的函数insert()
            $add=db('test_images')->insert($data);
            if($add){
                //如果添加成功,提示添加成功。success也可以定义跳转链接,success('添加图片成功!','这里写人跳转的url')
                $this->success('添加图片成功!');
            }else{
                $this->error('添加图片失败!');
            }
            return;
        }
        return view();
    }


    //上传图片函数
    public function upload(){
        // 获取表单上传的文件,例如上传了一张图片
        $file = request()->file('image');
        if($file){
            //将传入的图片移动到框架应用根目录/public/uploads/ 目录下,ROOT_PATH是根目录下,DS是代表斜杠 / 
            $info = $file->move(ROOT_PATH . 'public' . DS . 'static'. DS .'uploads');
            if($info){
                return $info->getSaveName();
            }else{
                // 上传失败获取错误信息
                echo $file->getError();die;
            }
        }
    }
}

    在application/admin/view/test_image文件夹,upload_img.html文件

  

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>图片上传</title>
<meta name="description" content="Dashboard">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<!--Basic Styles-->
<link href="__admin__/style/bootstrap.css" rel="stylesheet">
<link href="__admin__/style/font-awesome.css" rel="stylesheet">
<link href="__admin__/style/weather-icons.css" rel="stylesheet">
</head>
<body>
<div class="page-breadcrumbs">
    <ul class="breadcrumb">
        <li style="padding-left:11.5%">上传图片</li>                   
    </ul>
</div>
<div class="widget">
    <div class="widget-body">
	<div id="horizontal-form">
	<form class="form-horizontal" role="form" action="" method="post" enctype="multipart/form-data">
        <div class="form-group">
	    <label for="username" class="col-sm-2 control-label no-padding-right">缩略图</label>
	    <div class="col-sm-6">
		<input placeholder="" name="image" type="file">
	    </div>
	</div>
	<div class="form-group">
	    <div class="col-sm-offset-2 col-sm-10">
		<button type="submit" class="btn btn-default">提交图片</button>
	    </div>
	</div>
	</form>
    </div>
</div>
</div>
</body>
</html>

点击上传图片:

 

在文件夹下面的目录 public\static\uploads\20180725生成图片成功。

发布了15 篇原创文章 · 获赞 6 · 访问量 2万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览