gpt4 book ai didi

database - 存储在数据库中的图像在浏览器上显示时被剪切/裁剪

转载 作者:搜寻专家 更新时间:2023-10-30 20:56:43 29 4
gpt4 key购买 nike

我正在尝试显示来自 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)。

非常感谢任何帮助。

最佳答案

在 PHP 中很难处理来自 Web 客户端的 UTF-8 数据,您需要做很多事情。

首先你需要确定你的html页面是否可用

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

在您的网页中

改变你的

<form action='' method='post' enctype='multipart/form-data'>

add accept-charset=UTF-8 未在此处正确显示,请查看这篇文章的编辑以查看 html 代码..

如果这是php生成的也加上

header('Content-Type: text/html; charset=utf-8');

在上面

连接数据库后直接运行

mysql_set_charset('utf8')

告诉 php mysql 客户端使用 UTF-8 而不是 latin1 进行连接。

而且我认为您需要将照片保存为 base64_encoded 字符串以保持数据正确。

一些额外的注释来修复

1) 不要使用 mysql_annymore,而是使用 mysqli_2) html代码将html属性中的(')改为(")

关于database - 存储在数据库中的图像在浏览器上显示时被剪切/裁剪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18196684/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com