1. 首页
  2. 课程学习
  3. PHP
  4. PHP上传图片并压缩附源码

PHP上传图片并压缩附源码

上传者: 2023-03-10 04:04:00上传 ZIP文件 75.18KB 热度 11次
PHP 代码示例:


  // 检查上传文件是否为空
  if (!empty($_FILES['file'])) {
    // 获取上传文件信息
    $file = $_FILES['file'];
    $fileName = $file['name'];
    $fileTmpName = $file['tmp_name'];
    $fileSize = $file['size'];
    $fileError = $file['error'];
    $fileType = $file['type'];

    // 获取文件后缀名
    $fileExt = explode('.', $fileName);
    $fileActualExt = strtolower(end($fileExt));

    // 允许上传的文件类型
    $allowed = array('jpg', 'jpeg', 'png', 'pdf');
    if (in_array($fileActualExt, $allowed)) {
      if ($fileError === 0) {
        if ($fileSize < 5000000) {
          // 生成随机文件名
          $fileNewName = uniqid('', true) . "." . $fileActualExt;

          // 定义图片存储路径
          $fileDestination = "uploads/" . $fileNewName;

          // 移动文件到指定位置
          if (move_uploaded_file($fileTmpName, $fileDestination)) {
            echo "文件上传成功!";
          } else {
            echo "文件上传失败!";
          }
        } else {
          echo "文件过大,无法上传!";
        }
      } else {
        echo "上传文件出错!";
      }
    } else {
      echo "不支持该文件类型!";
    }
  }

JS 代码示例:

// 计算上传文件大小
function calculateFileSize() {
  var fileInput = document.getElementById('fileInput');
  if (fileInput.files.length > 0) {
    var fileSize = fileInput.files[0].size;
    if (fileSize > 1024 * 1024) {
      fileSize = (Math.round(fileSize * 100 / (1024 * 1024)) / 100).toString() + 'MB';
    } else {
      fileSize = (Math.round(fileSize * 100 / 1024) / 100).toString() + 'KB';
    }
    document.getElementById('fileSize').value = fileSize;
  }
}
用户评论