ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

PHP多文件上传类,可下载,可商用

2023-10-31 19:07:41  阅读:165  来源: 互联网

标签:


以下是一个开源的 PHP 多文件上传类 "Uploader",可以用于文件上传,并且可以根据需要被商用和下载使用。请注意,使用任何第三方开源类库前,请确保它符合您的具体需求并遵循相关许可证。

<?php

class Uploader {
    private $file;
    private $uploadPath;
    private $allowedTypes;
    private $maxSize;

    public function __construct($file, $uploadPath, $allowedTypes = array(), $maxSize = null) {
        $this->file = $file;
        $this->uploadPath = $uploadPath;
        $this->allowedTypes = $allowedTypes;
        $this->maxSize = $maxSize;
    }

    public function upload() {
        // 检查文件是否上传成功
        if ($this->file['error'] !== UPLOAD_ERR_OK) {
            return false;
        }

        // 检查上传文件类型是否允许
        $extension = pathinfo($this->file['name'], PATHINFO_EXTENSION);
        if (!empty($this->allowedTypes) && !in_array($extension, $this->allowedTypes)) {
            return false;
        }

        // 检查上传文件大小是否超过限制
        if (!is_null($this->maxSize) && $this->file['size'] > $this->maxSize) {
            return false;
        }

        // 移动文件到指定目录
        $destination = $this->uploadPath . '/' . $this->file['name'];
        if (!move_uploaded_file($this->file['tmp_name'], $destination)) {
            return false;
        }

        return true;
    }
}

PHP

使用示例:

// 创建 Uploader 实例
$file = $_FILES['file'];  // 表单中文件上传字段的名称
$uploadPath = '/path/to/upload/directory';  // 指定文件上传目录
$allowedTypes = array('jpg', 'png', 'gif');  // 允许的文件类型
$maxSize = 5242880;  // 最大文件大小(字节)
$uploader = new Uploader($file, $uploadPath, $allowedTypes, $maxSize);

// 执行文件上传
if ($uploader->upload()) {
    echo '文件上传成功!';
} else {
    echo '文件上传失败!';
}

PHP

请确保传递给 Uploader 类构造函数的文件信息是通过 $_FILES 获得的合法文件上传数据。另外,请根据具体情况设置适当的上传目录、允许的文件类型和最大文件大小。

尽管这个上传类相对简单,但它提供了一个基本的文件上传功能,可以作为开始为您的项目上传功能提供一个参考点。如果需要更高级的功能,您可以考虑使用已经存在的成熟框架或库,如Symfony、Laravel等。

标签:
来源:

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有