首页 > 解决方案 > 从 MySQL 服务器查询图像导致文件损坏

问题描述

从 MySQL 查询存储为 longblob 的图像时遇到问题。我知道这不是执行此操作的最佳方式,但这是我正在从事的项目的要求。

在我的本地计算机上运行的服务器正在运行并正确查询数据,但实时服务器没有正确返回图像(浏览器认为文件已损坏)。两个设备上的代码相同。从服务器返回的 longblob 与sum在本地环境中创建的文件相同(理论上两个文件具有相同的数据)。

是否有任何可以启用的设置会导致在实时服务器和本地环境上失败?

在数据库中创建图像的简化代码

$productImage = "images/" . time() . $productImageImage["name"];
move_uploaded_file($productImageImage["tmp_name"] , $productImage);
$productImageImage = file_get_contents($productImage);

$query = $connection->prepare("INSERT INTO product (productImage) VALUES (?)");

$query->bind_param("s", $ProductImageImage);

$result = $query->execute();

显示文件的代码

<?php
header("Content-Type: image/jpeg");
include 'include/db_connection.php';

function getId(){
    if(isset($_GET['id']))
    $selected = $_GET['id'];
    return $selected;
}

function alt_getImage($connection){
    $s = getId();

    $query = $connection->prepare("SELECT productImage FROM product WHERE productId = ?");
    $query->bind_param("i", $s);
    $query->execute();
    $result = $query->get_result();
    return $result;
}

function createImage($connection, $id){
    if ($id != null){
        $result = alt_getImage($connection);

        $row = $result->fetch_assoc();
        echo $row["productImage"]; 
        $connection->close();
    }
}

$id = $_GET['id'];

$connection = createConnection();

createImage($connection, $id);

?>

标签: phpmysql

解决方案


推荐阅读