PHP原始文件上传代码

###
前端
###
<form action="upload.php" method="post" enctype="multipart/form-data">
    <input type="file" name="myFile" />
    <br><br>
    <input type="submit" value="上传文件" />
</form>

###
后端
###
function uploadimage_action()
    {
        if ($_SERVER['REQUEST_METHOD'] == 'POST') {
            $uid = $this->uid;
            $usertype = $this->usertype;
            if(!$uid){
                return jsonErr('请先登录');
            }

            if (isset($_FILES['uploadedImage'])) {
                $image = $_FILES['uploadedImage'];
                // 检查是否有错误发生
                if ($image['error'] !== UPLOAD_ERR_OK) {
                    return jsonErr($image['error']);
                }

                // 检查文件大小
                $maxSize = 2000000;
                if ($image['size'] > $maxSize) {
                    return jsonErr("文件过大. 最大允许大小为: " . ($maxSize / 1000000) . "MB");
                }

                // 获取文件扩展名并转为小写
                $ext = strtolower(pathinfo($image['name'], PATHINFO_EXTENSION));

                // 检查文件类型
                $allowedTypes = ['jpg', 'jpeg', 'png', 'gif'];
                if (!in_array($ext, $allowedTypes)) {
                    return jsonErr("不允许的文件类型. 允许的类型为: " . implode(", ", $allowedTypes));
                }

                // 确保目标目录存在
                $targetDir = APP_PATH . 'data'.DIRECTORY_SEPARATOR.'upload'.DIRECTORY_SEPARATOR.'video'.DIRECTORY_SEPARATOR.$uid;
                if (!is_dir($targetDir)) {
                    mkdir($targetDir, 0777, true);
                }

                // 获取文件信息
                //$imageName = basename($image['name']);
                $imageName = time() . '.' . $ext;
                $imagePath = $targetDir . DIRECTORY_SEPARATOR . $imageName;

                // 检查文件是否已经存在
                if (file_exists($imagePath)) {
                    return jsonErr('文件已存在');
                }

                // 尝试移动上传的文件
                if (move_uploaded_file($image['tmp_name'], $imagePath)) {
                    return jsonSuc(['imageSrc' => $this->config['sy_weburl'].'/data/upload/video/'.$uid.'/'.$imageName]);
                } else {
                    return jsonErr("图片上传失败");
                }
            }
        }

    }

    function uploadvideo_action()
    {
        if ($_SERVER['REQUEST_METHOD'] == 'POST') {
            $uid = $this->uid;
            $usertype = $this->usertype;
            if(!$uid){
                return jsonErr('请先登录');
            }

            if (isset($_FILES['uploadedVideo'])) {
                $video = $_FILES['uploadedVideo'];
                // 检查是否有错误发生
                if ($video['error'] !== UPLOAD_ERR_OK) {
                    return jsonErr($video['error']);
                }

                // 检查文件大小
                $maxSize = 100000000;
                if ($video['size'] > $maxSize) {
                    return jsonErr("文件过大. 最大允许大小为: " . ($maxSize / 1000000) . "MB");
                }

                // 获取文件扩展名并转为小写
                $ext = strtolower(pathinfo($video['name'], PATHINFO_EXTENSION));

                // 检查文件类型
                $allowedTypes = ['mp4', 'avi', 'mov', 'mkv', 'flv', 'wmv', 'webm', 'mpg', 'mpeg', '3gp', '3g2', 'ogv'];
                if (!in_array($ext, $allowedTypes)) {
                    return jsonErr("不允许的文件类型. 允许的类型为: " . implode(", ", $allowedTypes));
                }

                // 确保目标目录存在
                $targetDir = APP_PATH . 'data'.DIRECTORY_SEPARATOR.'upload'.DIRECTORY_SEPARATOR.'video'.DIRECTORY_SEPARATOR.$uid;
                if (!is_dir($targetDir)) {
                    mkdir($targetDir, 0777, true);
                }

                // 获取文件信息
                //$imageName = basename($image['name']);
                $videoName = time() . '.' . $ext;
                $videoPath = $targetDir . DIRECTORY_SEPARATOR . $videoName;

                // 检查文件是否已经存在
                if (file_exists($videoPath)) {
                    return jsonErr('文件已存在');
                }

                // 尝试移动上传的文件
                if (move_uploaded_file($video['tmp_name'], $videoPath)) {
                    return jsonSuc(['videoSrc' => $this->config['sy_weburl'].'/data/upload/video/'.$uid.'/'.$videoName]);
                } else {
                    return jsonErr("视频上传失败");
                }
            }
        }
    }