<?php
// 处理文件上传的示例代码
if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_FILES['upload'])) {
// 检查是否有文件上传
if ($_FILES['upload']['error'] === UPLOAD_ERR_OK) {
$tmp_name = $_FILES['upload']['tmp_name'];
$name = basename($_FILES['upload']['name']);
$upload_dir = 'uploads/';
// 确保上传目录存在
if (!is_dir($upload_dir)) {
mkdir($upload_dir, 0777, true);
}
// 将文件移动到指定目录
if (move_uploaded_file($tmp_name, $upload_dir . $name)) {
echo "文件上传成功!";
} else {
echo "文件上传失败。";
}
} else {
// 输出错误信息
switch ($_FILES['upload']['error']) {
case UPLOAD_ERR_INI_SIZE:
echo "文件大小超过了 php.ini 中 upload_max_filesize 的限制。";
break;
case UPLOAD_ERR_FORM_SIZE:
echo "文件大小超过了 HTML 表单中 MAX_FILE_SIZE 的限制。";
break;
case UPLOAD_ERR_PARTIAL:
echo "文件只有部分被上传。";
break;
case UPLOAD_ERR_NO_FILE:
echo "没有文件被上传。";
break;
case UPLOAD_ERR_NO_TMP_DIR:
echo "找不到临时文件夹。";
break;
case UPLOAD_ERR_CANT_WRITE:
echo "文件写入失败。";
break;
case UPLOAD_ERR_EXTENSION:
echo "PHP 扩展阻止了文件上传。";
break;
default:
echo "未知错误。";
}
}
}
?>
<!-- HTML 表单 -->
<form action="" method="post" enctype="multipart/form-data">
选择文件: <input type="file" name="upload" />
<input type="submit" value="上传" />
</form>
$_FILES
是一个超全局数组,用于存储有关上传文件的信息。$_FILES['upload']['name']
包含上传文件的原始名称。$_FILES['upload']['tmp_name']
包含上传文件在服务器上的临时路径。$_FILES['upload']['error']
包含上传过程中可能发生的错误代码。move_uploaded_file()
函数用于将上传的文件从临时位置移动到指定的目标位置。UPLOAD_ERR_OK
表示文件上传成功,其他值表示不同的错误情况。enctype="multipart/form-data"
是表单必须设置的属性,以便能够上传文件。上一篇:php require
下一篇:php class
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站