当前位置:首页 > PHP

php实现显示图片

2026-02-16 16:55:09PHP

显示本地图片

在PHP中显示本地存储的图片,可以通过读取文件并设置正确的HTTP头来实现。以下是一个简单的示例:

<?php
$imagePath = 'path/to/your/image.jpg';
if(file_exists($imagePath)) {
    $mimeType = mime_content_type($imagePath);
    header('Content-Type: '.$mimeType);
    readfile($imagePath);
} else {
    header('HTTP/1.0 404 Not Found');
    echo 'Image not found';
}
?>

从数据库显示图片

当图片存储在数据库中时,通常以BLOB形式保存。以下是显示数据库图片的示例:

<?php
// 假设已经建立了数据库连接$conn
$imageId = $_GET['id'] ?? 0;
$stmt = $conn->prepare("SELECT image_data, image_type FROM images WHERE id = ?");
$stmt->bind_param("i", $imageId);
$stmt->execute();
$result = $stmt->get_result();

if($row = $result->fetch_assoc()) {
    header('Content-Type: '.$row['image_type']);
    echo $row['image_data'];
} else {
    header('HTTP/1.0 404 Not Found');
    echo 'Image not found';
}
?>

在HTML中嵌入图片

更常见的方式是在HTML中通过img标签引用PHP生成的图片:

<img src="show_image.php?id=123" alt="Example Image">

对应的show_image.php文件内容类似于上面的数据库显示示例。

图片缩略图生成

使用GD库创建缩略图并显示:

<?php
$sourceImage = 'original.jpg';
$thumbnailWidth = 200;

list($width, $height) = getimagesize($sourceImage);
$ratio = $height/$width;
$thumbnailHeight = $thumbnailWidth * $ratio;

$image = imagecreatefromjpeg($sourceImage);
$thumbnail = imagecreatetruecolor($thumbnailWidth, $thumbnailHeight);
imagecopyresampled($thumbnail, $image, 0, 0, 0, 0, $thumbnailWidth, $thumbnailHeight, $width, $height);

header('Content-Type: image/jpeg');
imagejpeg($thumbnail);
imagedestroy($image);
imagedestroy($thumbnail);
?>

图片水印添加

为图片添加文字水印并显示:

<?php
$image = imagecreatefromjpeg('original.jpg');
$textColor = imagecolorallocate($image, 255, 255, 255);
imagettftext($image, 20, 0, 10, 30, $textColor, 'arial.ttf', 'Watermark Text');

header('Content-Type: image/jpeg');
imagejpeg($image);
imagedestroy($image);
?>

图片缓存控制

为了提高性能,可以添加缓存控制头:

header('Content-Type: image/jpeg');
header('Cache-Control: max-age=86400');
header('Expires: '.gmdate('D, d M Y H:i:s \G\M\T', time() + 86400));
readfile('image.jpg');

安全注意事项

处理用户提供的图片时需要注意安全:

php实现显示图片

  • 验证文件类型
  • 限制访问目录
  • 防止路径遍历攻击
  • 对上传文件进行病毒扫描
$allowedTypes = ['image/jpeg', 'image/png'];
$mimeType = mime_content_type($imagePath);
if(!in_array($mimeType, $allowedTypes)) {
    die('Invalid image type');
}

标签: 图片php
分享给朋友:

相关文章

vue实现图片循环

vue实现图片循环

实现图片循环的基本方法 在Vue中实现图片循环通常使用v-for指令结合数组数据。以下是基础实现方式: <template> <div> <img v-fo…

php实现购物车

php实现购物车

PHP实现购物车功能 购物车功能是电商网站的核心模块之一,通常涉及商品添加、删除、数量修改和结算等操作。以下是使用PHP实现购物车功能的几种方法。 使用Session存储购物车数据 Session是…

php实现上传

php实现上传

PHP 文件上传实现 HTML 表单设置 创建一个包含文件上传字段的 HTML 表单,确保表单的 enctype 属性设置为 multipart/form-data,这是文件上传必需的设置。 <…

php实现mysql

php实现mysql

PHP 连接 MySQL 的基本方法 PHP 提供了多种方式与 MySQL 数据库进行交互,以下是最常用的几种方法。 使用 MySQLi 扩展 MySQLi 是 MySQL 的改进扩展,支持面向对…

php实现异步

php实现异步

PHP 实现异步的方法 PHP 本身是同步执行的脚本语言,但可以通过以下方法模拟异步操作或实现异步效果: 使用多进程(pcntl_fork) 通过 pcntl_fork 创建子进程实现异步,适用于…

jquery图片

jquery图片

jQuery 图片操作 jQuery 提供了多种方法来处理图片,包括加载、显示、隐藏、动画效果等。以下是一些常见的 jQuery 图片操作方法: 动态加载图片 使用 jQuery 的 attr()…