序言_ThinkPHP5.0入门实例教程

习惯了各种框架的文件上传,php原生上传图片你还记得吗?

序言:如今各种框架层出不穷,如thinkphp、laravel、yii等,对于功能的封装也是各显其能,以至于很多开发者离开了框架之后就不会开发了,今天我以实际的例子介绍最基本的图片上传功能,希望对一些朋友有所帮助。

thinkphp5的上传功能

表单代码如下:

<form action=&#;/index/index/upload&#; enctype=&#;multipart/form-data&#; method=&#;post&#;>
<input type=&#;file&#; name=&#;image&#; /> <br> 
<input type=&#;submit&#; value=&#;上传&#; /> 
</form> 

控制器中添加如下的代码:

public function upload(){
    // 获取表单上传文件 例如上传了.jpg
    $file = request()->file(&#;image&#;);
    
    // 移动到框架应用根目录/public/uploads/ 目录下
    if($file){
        $info = $file->move(ROOT_PATH . &#;public&#; . DS . &#;uploads&#;);
        if($info){
            // 成功上传后 获取上传信息
            // 输出 jpg
            echo $info->getExtension();
            // 输出 /42a79759f284b767dfcb2a0197904287.jpg
            echo $info->getSaveName();
            // 输出 42a79759f284b767dfcb2a0197904287.jpg
            echo $info->getFilename(); 
        }else{
            // 上传失败获取错误信息
            echo $file->getError();
        }
    }
}

文档地址:https://www.kancloud.cn/manual/thinkphp5/

PHP的原生上传代码

注意:文件上传一定要定义 enctype=&#;multipart/form-data&#;

<form action=&#;/index/index/upload&#; enctype=&#;multipart/form-data&#; method=&#;post&#;>
<input type=&#;file&#; name=&#;image&#; /> <br> 
<input type=&#;submit&#; value=&#;上传&#; /> 
</form> 
<?php
// 允许上传的图片后缀
$allowedExts = array(&#;gif&#;, &#;jpeg&#;, &#;jpg&#;, &#;png&#;);
$temp = explode(&#;.&#;, $_FILES[&#;file&#;][&#;name&#;]);
echo $_FILES[&#;file&#;][&#;size&#;];
$extension = end($temp);     // 获取文件后缀名
if ((($_FILES[&#;file&#;][&#;type&#;] == &#;image/gif&#;)
|| ($_FILES[&#;file&#;][&#;type&#;] == &#;image/jpeg&#;)
|| ($_FILES[&#;file&#;][&#;type&#;] == &#;image/jpg&#;)
|| ($_FILES[&#;file&#;][&#;type&#;] == &#;image/pjpeg&#;)
|| ($_FILES[&#;file&#;][&#;type&#;] == &#;image/x-png&#;)
|| ($_FILES[&#;file&#;][&#;type&#;] == &#;image/png&#;))
&& ($_FILES[&#;file&#;][&#;size&#;] < )   // 小于  kb
&& in_array($extension, $allowedExts))
{
    if ($_FILES[&#;file&#;][&#;error&#;] > 0)
    {
        echo &#;错误:: &#; . $_FILES[&#;file&#;][&#;error&#;] . &#;<br>&#;;
    }
    else
    {
        echo &#;上传文件名: &#; . $_FILES[&#;file&#;][&#;name&#;] . &#;<br>&#;;
        echo &#;文件类型: &#; . $_FILES[&#;file&#;][&#;type&#;] . &#;<br>&#;;
        echo &#;文件大小: &#; . ($_FILES[&#;file&#;][&#;size&#;] / ) . &#; kB<br>&#;;
        echo &#;文件临时存储的位置: &#; . $_FILES[&#;file&#;][&#;tmp_name&#;] . &#;<br>&#;;
        
        // 判断当前目录下的 upload 目录是否存在该文件
        // 如果没有 upload 目录,你需要创建它,upload 目录权限为 
        if (file_exists(&#;upload/&#; . $_FILES[&#;file&#;][&#;name&#;]))
        {
            echo $_FILES[&#;file&#;][&#;name&#;] . &#; 文件已经存在。 &#;;
        }
        else
        {
            // 如果 upload 目录不存在该文件则将文件上传到 upload 目录下
            move_uploaded_file($_FILES[&#;file&#;][&#;tmp_name&#;], &#;upload/&#; . $_FILES[&#;file&#;][&#;name&#;]);
            echo &#;文件存储在: &#; . &#;upload/&#; . $_FILES[&#;file&#;][&#;name&#;];
        }
    }
}
else
{
    echo &#;非法的文件格式&#;;
}
?>

我是小程序软件开发,每天分享开发过程中遇到的知识点,如果对你有帮助的话,帮忙点个赞再走呗,非常感谢。

《完》

往期文章分享:

1分钟搭建FTP服务端,有了这款软件竟然可以如此简单

php常用的富文本编辑器,ueditor和kindeditor

php一款可以在服务器安装的在线api文档编写工具:showdoc

原文链接:,转发请注明来源!