データ型image
の列からMicrosoft SQL Serverデータベースのイメージデータを取得して表示し、ファイルに保存しようとしています。しかし、一部の画像(10%)は完成していません。ブラウザでは、上から半分または1/3だけレンダリングされます。 「問題のある」画像が同じで破損するたびに同じことが繰り返されます。 PHPバージョン5.5.19-1〜dotdeb.1(CCA 10%のイメージが壊れた) dbからのイメージが完成していません
- にショーや店舗をしようとしていた
問題の画像 - PHPバージョン5.2.17(OKすべての画像)
私は両方のサーバー上で使用する場合は、この:
var_dump(base64_encode($row['data'], "UTF-8"));
イメージの一部が欠落しているように見えます - 文字列が短くなりました。
これはデータの解釈/変換に問題がありますか?私が取得したデータiconv_get_encoding
またはmb_detect_encoding
に使用した場合の両方が両方のサーバー上のfalse
戻る
...
マイコード:$conn = mssql_connect ('xxx.xxx.xxx.xxx' , 'xxxxxxxxx', 'xxxxxxxxxxxxxxxxx');
if (!$conn) {
echo "<p style='color: red'>error in connection db! id: ".$id."</p>";
} else {
mssql_select_db('CK', $conn);
echo "<p style='color: green'>connection ok for id: ".$id."</p>";
}
$result = mssql_query(
"SELECT k.data FROM KatG k
WHERE k.auto='".$id."'
ORDER BY k.attr DESC");
$row = mssql_fetch_assoc($result);
$imageData = base64_encode($row['data']);
$src = 'data: image/jpeg;base64,'.$imageData;
$img = '<img style="height: 60px; float: right;" src="'. $src. '">';
echo $img."<p>OK i get data!</p> <hr>";
私はこのように、この画像を保存した場合:(base64_encode
機能なし)
$im = imagecreatefromstring($row['data']);
imagejpeg($im, $path);
画像がブラウザの表示イメージと同じように壊れています。