`
罗正波
  • 浏览: 5126 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

PHP中多文件上传函数

    博客分类:
  • php
php 
阅读更多
/**
 * 多文件文件上传函数
 * @param string $pic 表中type='file'的name值
 * @param string $path 文件上传成功后存放的路径
 * @param int $size 文件上传的最大允许大小,单位为字节;默认为0,不限制
 * @param array $types 允许上传文件的类型,默认为图片
 * @return array $info  包含上传结果信息的数组
 */

function fileuploads($pic, $path='pic', $size=0, $types=['image/png', 'image/jpeg', 'image/gif', 'image/tmp'], $sum=0, $number=0)
{
    //判断上没有上传文件或者文件太大上传失败的处理
    if(empty($_POST) && empty($_FILES)){ 
        $info['status'][] = false;
        $info['msg'][] = '上传图片太大'; 
        return $info;
    }

    //处理一下如果是只选择一张图片的时候
    if(is_array($_FILES[$pic]['name'])){

        $file = $_FILES[$pic];
    } else {
        foreach ($_FILES[$pic] as $k=>$v) {
            $file[$k][] = $v;
        }
    }

    //进行遍历
    foreach($file['name'] as $k=>$v) {
	$sum ++;
    $info['status'][$k] = false;
        switch($file['error'][$k]) {
            case 1:
                $info['msg'][$k] = '第'.($k+1).'个文件太大了';
                continue 2;
            case 2:
                $info['msg'][$k] = '第'.($k+1).'个文件还太大了';
                continue 2;
            case 3:
            $info['msg'][$k] = '第'.($k+1).'个文件只有部分文件被上传';
            continue 2;
            case 4:
                $info['msg'][$k] = '第'.($k+1)."个上传文件不存在";
                continue 2;
            case 6:
                $info['msg'][$k] = '第'.($k+1).'个找不到临时文件';
                continue 2;
            case 7:
                $info['msg'][$k] = '第'.($k+1).'个文件未被服务器写入';
                continue 2;
        }

        //判断文件类型是不是一张图片,不是讲错误信息保存起来
        if(!in_array($file['type'][$k],$types)){
            $info['msg'][$k] = '第'.($k+1).'个输入的不是一张图片';
            continue;
        }
        //判断上传的文件
        if($size > 0 && $file['size'][$k] > $size){
            $info['msg'][$k] = '第'.($k+1).'个图片太大了';
            continue;
        }

        //判断路径是否存在,不存在进行递归创建
        if(!file_exists($path)) mkdir($path, 0777, true);

       // 随机生成文件名并获取文件的后缀
        $sj = mt_rand(1111, 9999999).uniqid().'.'.pathinfo($file['name'][$k],PATHINFO_EXTENSION);
        //对调用函数的路径进行处理
        $path = rtrim($path, '/').'/';
        //进行拼接
        $filename = $path.$sj;
        if (is_uploaded_file($file['tmp_name'][$k])) {
            if (move_uploaded_file($file['tmp_name'][$k], $filename)) {
            	$number++;
                $info['name'][$k] = $sj;
            } else {
                $info['msg'][$k] = "第{$sum}个人品太差,上传失败";
            }
	    } else {
	            $info['msg'][$K] = '第{$sum}个人品太差,上传失败';
	    }
	}
	if ($number == $sum) {
		$info['status'] = true;
	} else {
		$info['status'] = false;
	}
    return $info;
}
                //函数的调用
               $res =  fileuploads('pic');//就可以直接处理得到的结果了
               var_dump($res);
  • 大小: 3.3 KB
分享到:
评论

相关推荐

    PHP 文件操作函数

    通过理解和掌握这些PHP文件操作函数,开发者可以有效地处理文件系统,构建安全、高效的Web应用。在实际开发中,结合具体需求,灵活运用这些函数,能解决大多数文件相关的编程问题。在实践中不断积累经验,才能更好地...

    PHP文件处理及文件上传函数

    文件处理和文件上传是PHP Web开发中的基础技能,理解并熟练掌握这些函数和流程对于创建功能丰富的网站至关重要。通过上述方法,开发者可以实现如用户上传头像、文件分享、数据备份等多样化的功能。记得在实际应用中...

    PHP多文件上传插件,PHP+jQuery+Ajax多图片上传

    在PHP开发中,多文件上传是一项常见的功能,尤其在处理用户提交的图片或者文档时。本插件结合了PHP、jQuery和Ajax技术,提供了一种高效、用户友好的多图片上传解决方案。通过Ajax异步传输,用户可以在不刷新页面的...

    php大文件上传

    在PHP开发中,大文件上传是一项常见的需求,尤其是在多媒体内容分享、文件共享或者云存储服务等场景下。然而,PHP默认设置对大文件上传有限制,可能会导致上传失败或者超时。本案例将探讨如何通过PHP实现大文件的...

    php多文件上传

    首先,我们要理解PHP文件上传的基本流程。在HTML表单中,我们可以使用`<input type="file" multiple>`来让用户选择多个文件进行上传。当用户提交表单时,这些文件会以二进制格式通过HTTP POST请求发送到服务器。 ...

    php多文件上传实例

    在标题"php多文件上传实例"中,我们可以推断出这是一个关于PHP编程的教程,特别关注的是如何处理用户通过表单提交的多个文件。 首先,我们要理解PHP中的文件上传机制。这涉及到HTTP协议中的multipart/form-data编码...

    PHP文件上传类

    以下是对"PHP文件上传类"的详细解析: 1. **类的结构**: - 一个PHP文件上传类通常包含一系列的方法,如`upload()`用于执行实际的文件上传操作,`checkFileSize()`用于检查文件大小,`checkFileType()`用于验证...

    flash+php多文件上传

    在IT行业中,多文件上传是常见的功能需求,尤其是在网页应用中。"Flash+PHP多文件上传"是一种在早期网络环境中实现这一功能的常见方法。在那个时代,HTML5的File API尚未广泛支持,Flash作为浏览器插件,提供了丰富...

    flash+php文件上传多选单选都可以

    首先,让我们理解标题“flash+php文件上传多选单选都可以”所涉及的关键概念。Flash是一种广泛使用的多媒体软件平台,它支持动画、视频和交互式内容的创建。在文件上传领域,Flash可以提供比HTML更丰富的用户体验,...

    php操作文件函数

    这里我们将详细探讨标题和描述中提到的一些关键的PHP文件操作函数。 1. **basename()**:这个函数从给定的路径中返回最后一个部分,即文件名。例如,`basename("/path/to/my/file.txt")`将返回`"file.txt"`。 2. *...

    PHP多文件上传技术

    在PHP开发中,多文件上传是一项常见的功能,尤其在网页应用中,用户可能需要一次上传多个图片、文档或其它类型的文件。本篇文章将详细介绍如何实现PHP的多文件上传技术,以及涉及的相关知识点。 首先,我们需要了解...

    php文件上传插件(简洁好用的上传插件)

    本插件是一款简洁而实用的PHP文件上传解决方案,旨在帮助开发者快速集成文件上传功能,提升用户体验。下面将详细介绍这款插件的核心特性、使用方法以及相关知识点。 1. **核心特性** - **易用性**:这款插件设计...

    php实现文件上传并返回获得上传后文件名

    在PHP中实现文件上传是一项常见的任务,这通常涉及到用户通过Web...总的来说,PHP文件上传涉及了HTML表单、POST请求、PHP脚本处理和文件系统操作。理解这些概念对于构建任何涉及用户上传文件的Web应用程序至关重要。

    php版仿网易文件上传控件

    首先,我们要理解文件上传在Web应用中的作用。文件上传功能允许用户通过浏览器将本地计算机上的文件发送到服务器,这在数据交互、内容分享和信息管理中至关重要。网易作为大型互联网公司,其文件上传控件在用户体验...

    简单的前端加PHP通过AJAX异步多文件上传(依赖HTML5)【案例】

    在现代Web开发中,异步文件上传是一种常见的需求,它能提供更好的用户体验,因为用户可以在不刷新页面的情况下发送数据。本案例重点讲解如何利用前端的JavaScript(特别是AJAX)和后端的PHP来实现这样的功能,同时...

    php中一个很好用的文件上传类.zip

    在PHP开发中,文件上传是常见的功能之一,用于让用户上传图片、文档等文件到服务器。为了简化这个过程,开发者通常会使用预定义的类库或自定义的上传类。在这个"php中一个很好用的文件上传类.zip"压缩包中,包含了一...

    ajax PHP 大文件上传

    **二、PHP文件上传基础** 在PHP中,文件上传是通过HTTP协议的POST方法完成的,主要涉及到`$_FILES`全局数组,它包含了上传文件的相关信息,如文件名、类型、大小、临时路径等。要接收上传文件,PHP脚本必须包含`...

    PHP 使用技巧集 PHP操作mysql的函数

    如何用 PHP 实现文件上传(实例1) 如何用 PHP 文件操作函数 如何用 PHP 在 mySQL 中创建数据库表 如何在PHP发送邮件 如何在PHP中包含或插入文件 如何在 PHP 中操作目录 如何在PHP中进行身份认证

    PHP仿ASP经典上传组件(可多图,多文件上传)

    在本次讨论的“PHP仿ASP经典上传组件”中,我们将会深入探讨如何使用PHP实现类似ASP的文件上传功能,包括多图和多文件的批量上传。 1. **文件上传原理** 文件上传是Web应用中常见的需求,通常通过HTTP协议的POST...

Global site tag (gtag.js) - Google Analytics