我正在尝试显示来自 mysql 数据库的图像。一些图像显示正确,但有些图像在底部显示为剪切/裁剪,裁剪部分仅显示为空白,当它成为图像的一部分时,您真的无法摆脱它。
CSS 无法解决这个问题,并且使用 imagecreate 等在旅途中重新创建图像不会恢复它。我将元标记设置为 utf-8。根据我的阅读,这可能与 utf-8 bom 左右有关。我基本上使用 file_get_contents 或 fopen 和 fread 来获取图像并将它们存储在数据库中并使用 header() 或 base64_encode 输出它们。但是我这样做,我得到相同的结果。
这是浏览器的基本输出图像代码:
//html form
<form action='' method='post' enctype='multipart/form-data'>
<input type='file' name='image' size='10'>
<input type='submit' name='submit_image' value='Upload' />
</form>
//table creation
$my_photos = "CREATE TABLE IF NOT EXISTS photos (
id bigint NOT NULL auto_increment,
pic blob NOT NULL,
PRIMARY KEY (id)
) ENGINE=INNODB";
if (mysql_query($my_photos)){
print "Success in photo TABLE creation!";
} else {
print "no photos TABLE created. Debug code!";
}
//get image
$uploaded_image = $_FILES['image'];
$image_tmp = $uploaded_image['tmp_name'];
$image = file_get_contents($image_tmp);
//connect and submit image to database
mysql_connect("server","username","password");
mysql_select_db("database");
mysql_query("INSERT IGNORE INTO photos (id, pic) values ('', '".$image."') ");
//get image from database and output it
$image_query = mysql_query("SELECT * FROM photos WHERE id=1 ");
$image = mysql_fetch_array($image_query);
header("Content-type: image/jpg/jpeg/gif/png/bmp/JPG");
echo $image['pic'];
有没有人遇到过类似的问题,他们是如何解决的?
(我确实在我的应用程序中使用文件系统来处理某些图像,但在这种情况下需要 blob)。
非常感谢任何帮助。