商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > Linux下PHP如何实现文件上传功能

Linux下PHP如何实现文件上传功能

  发布于2026-07-03 阅读(0)

扫一扫,手机访问

在Linux环境下用PHP做文件上传,其实是很多开发者绕不开的基本功。网上教程不少,但大多干巴巴地直接贴代码,有些关键细节反而没说清楚。今天我们就从一个实际可运行的例子出发,把整个流程拆开揉碎了讲一遍。

Linux下PHP如何实现文件上传功能

  1. 先搭一个HTML表单——让用户能选文件

    这一步没什么高深的技术,关键就一句话:表单的 enctype 属性必须设为 multipart/form-data,不然文件数据没法正确传输。看看下面这个最简单的例子:

    
    
    File Upload
    
    
    Select file to upload:

    注意 action 指向的是处理脚本 upload.php,后面我们就要写这个核心文件。

  2. PHP脚本——真正干活的逻辑都在这里

    新建一个 upload.php,它要完成四件事:检查上传是否成功、验证文件类型和大小、判断是否重复、移动到指定目录。下面这段代码是标准写法,注释已经写得比较清楚了:

     500000) { // 限制500KB
        echo "Sorry, your file is too large.";
        $uploadOk = 0;
    }
    
    // 允许特定文件格式
    if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
    && $imageFileType != "gif" ) {
        echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
        $uploadOk = 0;
    }
    
    // 检查$uploadOk是否被置0
    if ($uploadOk == 0) {
        echo "Sorry, your file was not uploaded.";
    } else {
        if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
            echo "The file ". htmlspecialchars( basename( $_FILES["fileToUpload"]["name"])). " has been uploaded.";
        } else {
            echo "Sorry, there was an error uploading your file.";
        }
    }
    ?>

    几个容易踩的坑:文件大小限制单位是字节(500000 就是 500KB 约 0.5MB),getimagesize() 只能检查图片类文件,如果你允许其他格式记得把这部分逻辑改掉。另外 move_uploaded_file 一旦失败,多半是权限问题——这就引出第三步。

  3. 目录权限——光写代码不行,还得给Linux下个命令

    在终端执行:

    mkdir uploads
    chmod 755 uploads

    先创建 uploads/ 目录,然后给 755 权限(所有者可读写执行,其他人只读执行)。如果权限太严格(比如 700),Web 服务器用户(通常是 www-datanobody)就没法写入文件了。

这样一套流程跑下来,上传功能就基本成型了。当然实际生产环境还需要考虑更多细节:比如文件名冲突时自动重命名、限制文件存储路径不可被直接访问、对大文件做分片处理等等。但这些属于进阶话题,先把基础链路跑通,后面再逐步完善也不迟。

本文转载于:https://www.yisu.com/ask/29430334.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注