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
目录。如果一切正常,我们会输出文件上传成功的消息,否则会输出相应的错误信息。