前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PHP怎么实现文件上传的功能

PHP怎么实现文件上传的功能

作者头像
素浅
发布2020-11-09 14:30:35
1.8K0
发布2020-11-09 14:30:35
举报
文章被收录于专栏:程序媛生涯程序媛生涯

文件上传功能是项目中常用到的功能,可以上传几乎所有的文件。在这里,我们以上传图片举例。

在代码演示之前,我们先在根目录创建上传表单的HTML文件file.html以及接收处理上传文件信息的php文件upload.php,再在这两个文件的同级目录创建一个upload文件夹。

第一步 代码写入file.html

代码语言:javascript
复制
<html>
<head>
<meta charset="utf-8">
<title>上传图片</title>
</head>
<body>

<!-- action="upload.php":提交到upload.php文件 -->
<!-- method="post":提交方法是post -->
<!-- enctype="multipart/form-data":表明这是上传文件的类型,必须写 -->
<form action="upload.php" method="post" enctype="multipart/form-data">
    <label for="file">图片名:</label>
    <!-- 上传文件的表单 -->
    <input type="file" name="img" id="img">
    <!-- 提交表单 -->
    <input type="submit" name="submit" value="提交">
</form>

</body>
</html>

第二步 代码写入upload.php

代码语言:javascript
复制
<?php
// 允许上传的图片后缀
$allowedExts = array("gif", "jpeg", "jpg", "png");
// 将图片名分割成图片名称和后缀
$temp = explode(".", $_FILES["img"]["name"]);
// 获取文件后缀名
$extension = end($temp);   
// 检测图片的类型,大小以及后缀名是否在$allowedExts的数组中 
if ((($_FILES["img"]["type"] == "image/gif")
|| ($_FILES["img"]["type"] == "image/jpeg")
|| ($_FILES["img"]["type"] == "image/jpg")
|| ($_FILES["img"]["type"] == "image/pjpeg")
|| ($_FILES["img"]["type"] == "image/x-png")
|| ($_FILES["img"]["type"] == "image/png"))
&& ($_FILES["img"]["size"] < 204800)   // 小于 200 kb
&& in_array($extension, $allowedExts))
{
    if ($_FILES["img"]["error"] > 0)
    {
        // 如果有错误,就展示错误
        echo "错误:: " . $_FILES["img"]["error"] . "<br>";
    }
    else
    {
        // 判断当前目录下的 upload 目录是否存在该图片
        if (file_exists("upload/" . $_FILES["img"]["name"]))
        {
            // 如果存在了,就展示图片已经存在
            echo $_FILES["img"]["name"] . "图片已经存在!";
        }
        else
        {
            // 如果 upload 目录不存在该图片则将图片上传到 upload 目录下
            move_uploaded_file($_FILES["img"]["tmp_name"], "upload/" . $_FILES["img"]["name"]);
        }
    }
}
else
{
    // 如果检测不是,就展示错误
    echo "非法的文件格式";
}
?>
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-10-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序媛生涯 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 第一步 代码写入file.html
  • 第二步 代码写入upload.php
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档