温馨提示×

PHP file_get_contents能上传吗

PHP
小樊
85
2024-10-23 06:07:12
栏目: 编程语言

file_get_contents 本身不支持文件上传。它用于从指定的 URL 获取内容,而不是从本地文件系统读取文件。如果您想使用 PHP 处理文件上传,可以使用 $_FILES 超全局变量。

以下是一个简单的示例,说明如何使用 $_FILES 处理文件上传:

<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_FILES['uploaded_file'])) {
    $uploadDir = 'uploads/';
    $uploadFile = $uploadDir . basename($_FILES['uploaded_file']['name']);
    $uploadSize = $_FILES['uploaded_file']['size'];
    $uploadError = $_FILES['uploaded_file']['error'];
    $uploadType = $_FILES['uploaded_file']['type'];

    // 检查是否有错误
    if ($uploadError === UPLOAD_ERR_OK) {
        // 检查文件大小是否超过限制(例如:1MB)
        if ($uploadSize <= 1048576) {
            // 检查文件类型是否为允许的类型(例如:image/jpeg, image/png)
            $allowedTypes = ['image/jpeg', 'image/png'];
            if (in_array($uploadType, $allowedTypes)) {
                // 将文件移动到上传目录
                if (move_uploaded_file($_FILES['uploaded_file']['tmp_name'], $uploadFile)) {
                    echo '文件上传成功:' . $uploadFile;
                } else {
                    echo '文件上传失败,请重试。';
                }
            } else {
                echo '不允许的文件类型。';
            }
        } else {
            echo '文件大小超过限制。';
        }
    } else {
        echo '文件上传出错,错误代码:' . $uploadError;
    }
}
?>

<!-- HTML 表单 -->
<form action="" method="post" enctype="multipart/form-data">
    <input type="file" name="uploaded_file" accept="image/jpeg, image/png">
    <input type="submit" value="上传文件">
</form>

这个示例中,我们创建了一个简单的 HTML 表单,允许用户选择一个文件并上传。当表单提交时,我们检查是否有错误,检查文件大小和类型,然后将文件移动到 uploads 目录。如果一切正常,我们会输出文件上传成功的消息,否则会输出相应的错误信息。

0