首页  编辑  

简单的PHP文件上传API

Tags: /PHP/   Date Created:
简单的文件上传API,保存在 ./files 目录下,返回文件的完整 URL。

  1. <?php
  2. $allowedExtensions = ['zip''jpg''jpeg''png''gif'];
  3. $uploadDir = './files/';
  4. if ($_SERVER['REQUEST_METHOD'] === 'POST') {
  5.     if (!empty($_FILES['file']) && $_FILES['file']['error'] === 0) {
  6.         $filename = $_FILES['file']['name'];
  7.         $tempFilePath = $_FILES['file']['tmp_name'];
  8.         $extension = strtolower(pathinfo($filename, PATHINFO_EXTENSION));
  9.         $mime = mime_content_type($tempFilePath);
  10.         if (in_array($extension, $allowedExtensions) && in_array($mime, ['application/zip''image/jpeg''image/png''image/gif'])) {
  11.             $newFilename = uniqid() . '.' . $extension;
  12.             $destination = $uploadDir . $newFilename;
  13.             if (move_uploaded_file($tempFilePath, $destination)) {
  14.                 $url = 'https://' . $_SERVER['HTTP_HOST'] . '/files/' . $newFilename;
  15.                 echo $url;
  16.                 exit;
  17.             } else {
  18.                 echo '文件上传失败';
  19.             }
  20.         } else {
  21.             echo '不支持的文件类型';
  22.         }
  23.     } else {
  24.         echo '上传文件失败';
  25.     }
  26. }
  27. ?>
  28. <!DOCTYPE html>
  29. <html>
  30. <head>
  31.     <title>文件上传示例</title>
  32. </head>
  33. <body>
  34.     <form action="file.php" method="post" enctype="multipart/form-data">
  35.         <label for="file">选择文件:</label>
  36.         <input type="file" name="file" id="file" accept=".zip,.jpg,.jpeg,.png,.gif">
  37.         <button type="submit">上传文件</button>
  38.     </form>
  39. </body>
  40. </html>