人氣 42°c

搭建一個簡單檔案及圖床空間PHP

網站、博客(部落格)、論壇(討論區)等程序,想架設一個獨立的上傳空間,方便管理主機上的圖片及檔案,在此分享一個 PHP Upload Script 上傳文件腳本,能夠輕鬆搭建自己的文件空間。這個你可以自建在PHP服務器,新增幾份文件即可。

這裡有一份 W3C School 的程式碼範本:PHP File Upload

源碼:

新建一份文件為:index.html

內容:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>PHP File Upload</title>
</head>
<body>
    <form action="upload.php" method="post" enctype="multipart/form-data">
        Upload a File:
        <input type="file" name="the_file" />
        <input type="submit" name="submit" value="開始上傳!" />
    </form>
</body>
</html>

新建一份文件為:upload.php

內容:

<?php
    $currentDirectory = getcwd();
    $uploadDirectory = "/file/"; // 儲存目錄

    $errors = []; // 錯誤信息

    $fileExtensionsAllowed = ['jpeg','jpg','png','gif','webp','zip','rar']; // 允許上傳的檔案類型

    $fileName = $_FILES['the_file']['name'];
    $fileSize = $_FILES['the_file']['size'];
    $fileTmpName  = $_FILES['the_file']['tmp_name'];
    $fileType = $_FILES['the_file']['type'];
    $tmp = explode('.', $fileName);
    $fileExtension = end($tmp);
    $destFileName = uniqid() . '.' . $fileExtension;

    $uploadPath = $currentDirectory . $uploadDirectory . $destFileName;

    if (isset($_POST['submit'])) {

      if (! in_array($fileExtension,$fileExtensionsAllowed)) {
        $errors[] = "不支持的檔案或圖片格式";
      }

      if ($fileSize > 5000000) {
        $errors[] = "超過上傳檔案或圖片的大小限制(5MB)";
      }

      if (empty($errors)) {
        $didUpload = move_uploaded_file($fileTmpName, $uploadPath);

        if ($didUpload) {
          echo "https://www.moonlol.com/upload/file/" . basename($destFileName) . " <<--圖片連結-->>";
        } else {
          echo "出錯啦!請聯絡管理員";
        }
      } else {
        foreach ($errors as $error) {
          echo $error . "<<全部錯誤>>" . "\n";
        }
      }

    }
?>

新增一個目錄為:file

把上傳的圖片及檔案文件,都存放在這份文件夾內。

完成!

相關文章:
01. 上傳圖片獲取EXIF相片資訊
標籤: