「PHP系列」PHP文件处理及文件上传详解
<?php
// 假设这是一个上传文件的处理脚本
// 检查是否有文件上传
if (isset($_FILES['myfile'])) {
$file = $_FILES['myfile'];
// 检查是否有错误
if ($file['error'] == UPLOAD_ERR_OK) {
// 设置允许的文件类型
$allowedTypes = ['image/jpeg', 'image/png'];
// 检查文件类型
if (in_array($file['type'], $allowedTypes)) {
// 设置文件上传目录
$uploadDir = 'uploads/';
// 确保目录存在
if (!is_dir($uploadDir)) {
mkdir($uploadDir, 0755, true);
}
// 构建目标文件路径
$targetPath = $uploadDir . basename($file['name']);
// 移动文件到指定目录
if (move_uploaded_file($file['tmp_name'], $targetPath)) {
echo "文件上传成功!";
} else {
echo "文件上传失败!";
}
} else {
echo "不允许的文件类型!";
}
} else {
// 根据错误代码显示不同的错误信息
switch ($file['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;
}
}
} else {
echo "没有文件上传!";
}
?>
这段代码展示了如何处理一个简单的文件上传。它首先检查是否有文件上传,然后检查上传过程中是否有错误,如果没有错误,它会检查文件类型是否允许,并且将文件移动到指定目录。如果文件上传成功,它会返回一个成功的消息,如果失败,它会根据错误类型返回相应的错误信息。
评论已关闭