正如标题所示,我目前正在使用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(Android)和其他浏览器(IE,Edge)上,它不起作用 - 显示“未找到图像”图标。
将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)上根本无法渲染。