1. 程式人生 > >thinkphp5實現檔案上傳

thinkphp5實現檔案上傳

檔案上傳

原理:通過form表單的enctype = "multipart / form-data"屬性將檔案臨時放在htdocs資料夾的tmp目錄下,再通過後臺的程式將檔案儲存在自己設定的新的資料夾中。

前端頁面

前端程式碼
<!--上傳檔案-->
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>上傳頭像</title>
</head>
<body>
      <form action="picupload" method="post" enctype="multipart/form-data">
          <input type="file" name="file"/>
          <input type="submit" value="上傳"/>
      </form>
</body>
</html>

後臺程式碼

<?php

namespace app\index\controller;
use think\View;
use think\Controller;

class Picupload extends Controller
{
    public function index()
    {
        $view = new View();
        return $view->fetch("picupload");
    }

    public function picupload()
    {
        //判斷檔案上傳是否出錯
        if($_FILES["file"]["error"])
        {
            echo $_FILES["file"]["erroe"];
        }
        else
        {
            //控制上傳的檔案型別,大小
            if($_FILES["file"]["type"]=="image/jpeg"||$_FILES["file"]["type"]=="image/jpg" && $_FILES["file"]["type"]=="image/png"&&$_FILES["file"]["size"]<1024000)
            {
                //找到檔案存放位置,注意tp5框架的相對路徑前面不用/
                //這裡的filename進行了拼接,前面是路徑,後面從date開始是檔名
                //我在static檔案下新建了一個file檔案用來存放檔案,要注意自己建一個檔案才能存放傳過來的檔案
                $filename = "static/file/".date("YmdHis").$_FILES["file"]["name"];
                //判斷檔案是否存在
                if (file_exists($filename))
                {
                    echo "該檔案已存在!";
                }
                else
                {
                    //儲存檔案
                    //move_uploaded_file是php自帶的函式,前面是舊的路徑,後面是新的路徑
                    move_uploaded_file($_FILES["file"]["tmp_name"],$filename);
                }
            }
            else
            {
                echo "檔案型別不正確!";
            }
        }
    }

}
點選上傳就能將檔案放到指定的檔案夾了
檔案的命名格式按照之前設定好的規則進行命名