引言

选择保存路径

$uploadPath = "uploads/"; // 上传图片的基本路径

确保该路径存在于服务器上,并且服务器有足够的权限写入该路径。

图片验证

function validateImage($file) {
    $validTypes = array('image/jpeg', 'image/png', 'image/gif');
    if (in_array($file['type'], $validTypes)) {
        return true;
    } else {
        return false;
    }
}

文件存储

if (validateImage($_FILES['image'])) {
    $filename = $_FILES['image']['name'];
    $tempPath = $_FILES['image']['tmp_name'];
    $newPath = $uploadPath . $filename;

    if (move_uploaded_file($tempPath, $newPath)) {
        echo "图片上传成功!";
    } else {
        echo "图片上传失败。";
    }
} else {
    echo "无效的图片格式。";
}

错误处理

在文件上传过程中,可能会遇到各种错误。以下是一个基本的错误处理示例:

if ($_FILES['image']['error'] === UPLOAD_ERR_OK) {
    // 进行图片验证和存储操作
} else {
    switch ($_FILES['image']['error']) {
        case UPLOAD_ERR_INI_SIZE:
            echo "文件过大,超过了配置文件中设置的大小。";
            break;
        case UPLOAD_ERR_FORM_SIZE:
            echo "文件过大,超过了表单中设置的大小。";
            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 "文件上传被扩展名中断。";
            break;
        default:
            echo "未知的错误。";
            break;
    }
}

这段代码检查上传过程中是否有错误发生,并输出相应的错误信息。

总结