图片上传与存储

1. 创建表单

<form action="upload.php" method="post" enctype="multipart/form-data">
  <label for="image">选择图片:</label>
  <input type="file" name="image" id="image">
  <input type="submit" value="上传">
</form>

2. PHP处理上传

<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    $image = $_FILES['image'];
    $upload_dir = 'uploads/';
    $file_name = basename($image['name']);
    $file_path = $upload_dir . $file_name;

    if (move_uploaded_file($image['tmp_name'], $file_path)) {
        echo "文件已成功上传到: " . $file_path;
    } else {
        echo "上传失败。";
    }
}
?>

这段代码检查是否有文件被上传,然后将其移动到服务器上的指定目录。

图片链接的生成与映射

1. 生成唯一标识符

$unique_id = uniqid();

2. 映射临时文件名和正式文件名

$map = [
    $unique_id => $file_name
];

3. 更新文章内容

$article_content = "这里是文章内容,[图片链接]是图片的引用。";
$article_content = str_replace('[图片链接]', $upload_dir . $file_name, $article_content);

浏览器中直接输出图片

1. 使用PHP处理图片

function showImg($img) {
    $info = getimagesize($img);
    $imgExt = imagetypetoextension($info[2], false); // 获取文件后缀
    $fun = "imagecreatefromimgExt";
    $imgInfo = $fun($img); // 由文件或 URL 创建一个新图象

    // 设置MIME类型
    $mime = imagetypetomimetype(exifimagetype($img));
    header('Content-Type: ' . $mime);

    // 设置输出质量
    $quality = 100;
    if ($imgExt == 'png') $quality = 9;

    // 输出图片
    $fun($imgInfo, null, $quality);
    imagedestroy($imgInfo);
}

2. 调用函数

showImg('uploads/example.jpg');

总结