我有一个包含 jpeg 照片数据表的数据库。此数据已从 iPad 应用程序发送到数据库,并且可以使用以下方式显示在网页中:
$photo_query = "SELECT photoID, photoData FROM tblPhotos;";
$resultPhotos = mysqli_query($connect, $photo_query);
while($rowPhotos = mysqli_fetch_array($resultPhotos)) { ?>
<div id="photo"> <?php
echo '<img src="data:image/jpeg;base64,' . base64_encode($row['photoData']) .'"/>';
</div>
}
这工作正常,图像显示正确。
我现在正在寻找一个简单的工具来旋转这个图像。下面的图像是一个简单的,当单击它时,javascript 函数 updatePhoto 会使用 photoID 调用:
<div onclick="updatePhoto('<?php echo $photoID; ?>')">Rotate</div>
JAVASCRIPT
function updatePhoto(photoID) {
$.post("photoChange.php", {
photoToChange: photoID
},
function(data, status){
document.getElementById('photo').innerHTML = "<img src='data:image/jpeg;base64, base64_encode(" + data + ")'/>";
});
}
PHOTOCHANGE.PHP
$photoID = $_POST['photoToChange');
$select_photo_query = "Select photoData From tblPhotos where photoID= '" . $photoID ."';";
$resultPhotos = mysqli_query($connect, $select_photo_query);
while($rowPhotos = mysqli_fetch_array($resultPhotos)) {
$source = $rowPhotos['photoData'];
}
$degrees=90;
$image = imagecreatefromstring ($source);
$rotate = imagerotate($image, $degrees, 0);
$finalImage = imagejpeg($rotate);
//step to convert jpeg back to binary needed?
echo $finalImage;
这一切的工作原理是将 photoID 发送到 photoChange.php,从数据库等中检索源,然后将数据发送回并放入页面中。但它不显示图像,只是显示大量数据。我知道我在这里遇到了编码问题,但我不确定到底是什么。
我尝试删除所有旋转细节并简单地回显 $source 不变,这不会用自身替换图像,而是用数据行替换。所以我想知道在发布数据和回显数据时是否存在问题,是否需要规定正在使用的编码方法?
非常感谢任何帮助。