PHP页面作为图像源?

时间:2016-02-25 18:35:58

标签: php image mysqli

正如标题所示,我目前正在使用PHP页面作为图像标记的“src”属性。

图像存储在“问题”MySQL表中,如MEDIUMBLOBs(还有其他更好的存储图像的方式,但不幸的是,这里没有摆动的空间)。

我像这样回应图像:

 echo("<img src=\"teacherPageQuestionsImage.php?id=" . $_row["Question_ID"] . "\">");

页面“teacherPageQuestionsImage”本身是以下代码:

<?php

require 'databaseConnect.php';

session_start();

if (!isset($_SESSION['valid_teacher']))
{
    header("Location:teacherLoginPage.php");
}

if(isset($_GET['id']))
{
    $_questionID = $_GET['id'];

    // Open DB Connection
    $_conn = databaseConnect();

    $_stmt = $_conn->prepare("SELECT Question_Image FROM Question WHERE Question_ID=?");
    $_stmt->bind_param("i",$_questionID);

    $_stmt->execute();
    $_stmt->store_result();
    $_stmt->bind_result($_image);
    $_stmt->fetch();

    // Close DB Connection
    $_conn->close();

    header("Content-Type: image/jpeg");
    echo($_image);   
}

?>

这样可行,但仅适用于桌面Chrome。 See Image

在移动Chrome(Android)和其他浏览器(IE,Edge)上,它不起作用 - 显示“未找到图像”图标。 See Image

将Image插入数据库,如下所示:

$_imagePost = file_get_contents($_FILES['_imagePost']['tmp_name']);

// Open DB Connection
$_conn = databaseConnect();

$_stmt = $_conn->prepare("INSERT INTO Question (Question_Type, Question_Text, Question_Answer, Question_UseImage, Question_Image) VALUES (?, ?, ?, ?, ?)");
$_stmt->bind_param("sssib", $_typePost, $_textPost, $_answerPost, $_useImagePost, $_null);
$_stmt->send_long_data(4,$_imagePost);
$_stmt->execute();

$_idPost = $_conn->insert_id;

// Close DB Connection
$_conn->close();

那究竟是什么导致了问题呢?为什么图像在Chrome桌面上显示正常,但在其他浏览器和移动Chrome(Android)上根本无法渲染。

0 个答案:

没有答案