当前位置:首页 > 行业动态 > 正文

如何安全地实现PHP文件上传功能?

“`php,,,,,,,

1、创建一个名为upload.html 的文件,内容如下:

如何安全地实现PHP文件上传功能?  第1张

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF8">
    <meta name="viewport" content="width=devicewidth, initialscale=1.0">
    <title>文件上传</title>
</head>
<body>
    <form action="upload.php" method="post" enctype="multipart/formdata">
        选择要上传的文件:
        <input type="file" name="fileToUpload" id="fileToUpload">
        <input type="submit" value="上传文件" name="submit">
    </form>
</body>
</html>

2、创建一个名为upload.php 的文件,内容如下:

<?php
$target_dir = "uploads/"; // 设置上传目录
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]); // 获取上传文件的路径
$uploadOk = 1; // 初始化上传状态为成功
$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION)); // 获取文件扩展名
// 检查文件是否已经存在
if (file_exists($target_file)) {
    echo "抱歉,文件 ". basename($_FILES["fileToUpload"]["name"]). " 已经存在。";
    $uploadOk = 0;
}
// 检查文件大小
if ($_FILES["fileToUpload"]["size"] > 500000) { // 限制文件大小为 500KB
    echo "抱歉,你的文件太大。";
    $uploadOk = 0;
}
// 限制允许的文件格式
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg" && $imageFileType != "gif") {
    echo "抱歉,仅支持 JPG, JPEG, PNG & GIF 格式。";
    $uploadOk = 0;
}
// 如果一切正常,尝试上传文件
if ($uploadOk == 1) {
    if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
        echo "文件 ". basename($_FILES["fileToUpload"]["name"]). " 已成功上传。";
    } else {
        echo "抱歉,上传文件时出错。";
    }
} else {
    echo "抱歉,无法上传文件。";
}
?>

3、在您的服务器上创建一个名为uploads 的文件夹,用于存储上传的文件。

4、将这两个文件放在您的 Web 服务器的根目录下,然后通过浏览器访问upload.html 页面,选择一个文件并点击上传按钮,如果一切正常,文件将被上传到uploads 文件夹中。

小伙伴们,上文介绍了“php 文件上传源码”的内容,你了解清楚吗?希望对你有所帮助,任何问题可以给我留言,让我们下期再见吧。

0