实现PHP文件上传功能

<?php
$targetDir = "uploads/";
$uploadSuccess = false;
$uploadError = '';

if (isset($_POST["submit"])) {
    $fileName = basename($_FILES["fileToUpload"]["name"]);
    $targetFilePath = $targetDir . $fileName;
    $fileType = pathinfo($targetFilePath, PATHINFO_EXTENSION);

    // 允许的文件类型
    $allowTypes = array('jpg', 'png', 'jpeg', 'gif', 'pdf');

    if (in_array($fileType, $allowTypes)) {
        if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $targetFilePath)) {
            $uploadSuccess = true;
        } else {
            $uploadError = "文件上传失败,请重试。";
        }
    } else {
        $uploadError = '仅允许上传 JPG, JPEG, PNG, GIF, 或 PDF 文件.';
    }
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>文件上传功能示例</title>
</head>
<body>
    <h1>文件上传功能示例</h1>

    <!-- 文件上传表单 -->
    <form action="" method="post" enctype="multipart/form-data">
        <input type="file" name="fileToUpload" id="fileToUpload" required>
        <br><br>
        <button type="submit" name="submit">上传文件</button>
    </form>

    <?php if ($uploadSuccess): ?>
        <p style="color:green;">文件上传成功!</p>
    <?php elseif ($uploadError): ?>
        <p style="color:red;"><?php echo $uploadError; ?></p>
    <?php endif; ?>
</body>
</html>

  1. 文件上传表单: 在HTML表单中,使用<input type="file">元素允许用户选择要上传的文件。

  2. PHP处理逻辑:

    • 设置目标上传目录 $targetDir
    • 当用户提交表单时,PHP脚本会检查上传的文件类型和大小。
    • 如果文件类型符合要求,并且上传成功,文件将被移动到指定的目标目录中。
    • 如果文件上传失败或不符合要求,将显示相应的错误消息。
  3. 安全性考虑:

    • 使用move_uploaded_file函数移动文件,确保仅允许合法的文件类型上传。
    • 在PHP中处理文件上传时,必须格外小心,以防止文件注入攻击或滥用。
  4. 用户反馈:

    • 根据上传结果,在页面上显示相应的成功或错误消息,以便用户了解上传状态。

这个示例展示了如何在PHP中实现基本的文件上传功能,并提供了一个简单的界面来测试文件上传的操作。在实际应用中,可以根据需要扩展此功能,添加更多的验证和安全措施,以确保系统的稳健性和安全性。

  • 24
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值