日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql安装时损坏的图像_在PHP中从MySQL获取图像会导致图像损坏

發布時間:2024/1/23 数据库 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql安装时损坏的图像_在PHP中从MySQL获取图像会导致图像损坏 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我遇到了錯誤

"圖片“.... image.php?id = 1878”無法顯示,因為它包含錯誤。

這是我從db中檢索圖像內容的代碼。 db中的數據是正確的,因為相同的文件與一些舊的PHP代碼完美地顯示。事實上,我使用的代碼是完全相同的舊代碼,我只是從許多鏈接(包含)的php文件中提取它,顯然我錯過了一些東西。

$query="SELECT image_original_file, mime_type, {$field_content} as content, {$field_content}_md5 as imhash, CHAR_LENGTH({$field_content}) as leng FROM IMAGES WHERE ID_image={$_GET['id']}";

$res=mysql_query($query,DB_CON);

$myRow = mysql_fetch_row($res);

//Of course this echo statement is just for debuging, as echo causes the default headers to be sent.

echo "Fetched content length:".mb_strlen($myRow[2])." and MySQL length ".$myRow[4];

list($name,$type,$content,$imhash,$length)=$myRow;

這里的輸出顯示php中的內容長度是29179bytes,但在MySQL中它是28605(這是我保存圖像時的正確大小)。

我想知道為什么在這些代碼行之后PHP的內容大小不同。 DB中的filecontent不是base64編碼的,原始代碼也不對從db中檢索的內容使用任何操作。我比較了舊代碼的標題和" new"代碼,除內容長度以外的所有內容都是相同的。我懷疑這是某種角色問題?

我試過了:

mysql_set_charset('utf8',$con);

mysql_query("SET character_set_results = 'utf8', character_set_client = 'utf8', character_set_connection = 'utf8', character_set_database = 'utf8', character_set_server = 'utf8'", DB_CON);

mysql_query("SET NAMES utf8",DB_CON);

但問題仍然存在。我會很樂意提供一些建議。

將圖像發送到瀏覽器,如下所示:

header("ETag: \"{$imhash}\"");

header("Expires: " . gmdate("D, d M Y H:i:s") . " GMT");

header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");

header("Cache-Control: must-revalidate");

header("Accept-Ranges: bytes");

header("Content-Length: ".mb_strlen($content));

header("Content-Type: {$type}");

header("Content-Disposition: inline; filename=\"{$name}\";");

echo $content;

總結

以上是生活随笔為你收集整理的mysql安装时损坏的图像_在PHP中从MySQL获取图像会导致图像损坏的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。