搜索
首页每日编程PHP知识PHP文件上传方法详解及其信息解析【附视频】

本篇文章主要给大家详细介绍PHP文件上传方法及其信息解析。

用php实现文件上传功能在PHP项目开发中是比较常见的,但是对于一些新手来说或许有些难度,下面我们通过具体的代码实例给大家详细解说。

首先创建一个文件上传的HTML form表单.

代码示例如下:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form action="upload.php" method="post" enctype="multipart/form-data">
 选择文件进行上传: <input type="file" name="file">
    <input type="submit" value="上传">
</form>
</body>
</html>

效果如图:

f6b6fcc17cca46bdfd4976765d48180.png

在上述代码中,我们给input按钮设置了file类型,并且给上传的文件名称也设置为file。当我们点击选择文件或者图片时,form表单数据就会发送到upload.php中,然后对上传的文件进行相关的操作。

那么在upload.php文件中,我们将定义一个方法对上传的文件进行相关信息解析操作.

具体代码示例如下:

<?php
$fileInfo = $_FILES[&#39;file&#39;];
var_dump($_FILES[&#39;file&#39;]);

function upload_file($fileInfo, $upload = "./upload", $imagesExt = [&#39;gif&#39;, &#39;png&#39;, &#39;jpg&#39;])
{
    if ($fileInfo[&#39;error&#39;] === 0) {
        $ext = strtolower(pathinfo($fileInfo[&#39;name&#39;], PATHINFO_EXTENSION));
        if (!in_array($ext, $imagesExt)) {
            return "文件非法类型";
        }
        if (!is_dir($upload)) {
            mkdir($upload, 0777, true);
        }
        $fileName = md5(uniqid(microtime(true), true)) . "." . $ext;
        $destName = $upload . "/" . $fileName;
        if (!move_uploaded_file($fileInfo[&#39;tmp_name&#39;], $destName)) {
            return "文件上传失败!";
        }
        return "文件上传成功!";
    } else {
        switch ($fileInfo[&#39;error&#39;]) {
            case 1:
                echo &#39;上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值&#39;;
                break;
            case 2:
                echo &#39;上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值&#39;;
                break;
            case 3:
                echo &#39;文件只有部分被上传&#39;;
                break;
            case 4:
                echo &#39;没有文件被上传&#39;;
                break;
            case 6:
                echo &#39;找不到临时文件夹&#39;;
                break;
            case 7:
                echo &#39;文件写入失败&#39;;
                break;
        }
    }
}
var_dump(upload_file($fileInfo));

在上述PHP代码中定义了一个变量$fileInfo来接收form表单上传来的数据,再用var_dump函数打印出上传文件file的信息,且以数组方式显示。

那么在还没有设置方法对文件进行判断时,直接通过浏览器访问出现的效果如下图:

c0cc2b14df14687a9ffbd9dc3a6addb.png

提示:error表示的是错误信息说明,这里的错误号为0,即表示上传的文件没有任何错误。但是在PHP手册中,错误号不止为0 。

下面通过表格形式给大家简单总结下error错误号的几种情况

值为 0
值为 1 值为 2 值为 3 值为 4 值为 6 值为 7
没有错误发生,文件上传成功。 上传的文件超过了php.ini中       upload_max_filesize 选项限制的值。       上传文件的大小超过了 HTML 表单中       MAX_FILE_SIZE 选项指定的值。 文件只有部分被上传。       没有文件被上传 找不到临时文件夹。PHP 4.3.10 和 PHP 5.0.3 引进。 文件写入失败。PHP 5.1.0 引进。

那么在了解了error错误号的相关知识后,我们就可以设计PHP上传方法,来对上传文件进行多种判断。在上述代码中已经给大家非常详细的写出了方法判断的具体代码,首先我们定义了upload_file()这个方法,其中赋予了三个参数,分别表示文件上传信息,目录以及判定文件类型的一个数组。

然后使用if else以及switch判断语句对上传文件进行一一判断。

这里的方法里分别根据了文件的类型、上传文件夹存在与否以及error错误信息情况来进行判断的。

最后我们上传一个图片后,显示的最终效果为下图:

c8d00f0140256e672acf1925a33b25e.png

注:上述代码中md5()函数不是用来加密,而是用来编码的。

以上文章内容就是关于PHP文件上传的具体方法介绍,希望对有需要朋友有所帮助!其对应的视频教程是【PHP文件上传信息解析以及封装上传方法】可供大家参考学习!

以上是PHP文件上传方法详解及其信息解析【附视频】的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

EditPlus 中文破解版

EditPlus 中文破解版

体积小,语法高亮,不支持代码提示功能

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

功能强大的PHP集成开发环境

安全考试浏览器

安全考试浏览器

Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)