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 が必要です)。
どんな助けでも本当に感謝しています。