2017-01-04 13 views
2

PHPの場合は完全な初心者なので、事前にお詫び申し上げます。文字列の代わりにPHPの出力イメージ

私は自分のテーブルを照会してテーブル内のすべてのデータを返そうとしていますが、私は以下のようにして最後のカラムをlongtextストリングとして返します。それをイメージソースとして使用しますイメージを返す、意味があるのだろうか?

try { 
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password); 
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
$stmt = $conn->prepare("SELECT * FROM `o18-reg`"); 
$stmt->execute(); 

$result = $stmt->setFetchMode(PDO::FETCH_ASSOC); 

foreach(new TableRows(new RecursiveArrayIterator($stmt->fetchAll())) as $k=>$v) { 
    echo $v; 
} 
} 
+0

データベースにファイルを保存しないでください。 http://stackoverflow.com/a/41235395/267540 – e4c5

+0

文字列とは何ですか?ベース64の画像ですか?ファイルへのパス? – KhorneHoly

+0

ベース64 @KhorneHoly yes – Liam

答えて

4

まず、画像自体をデータベースに配置しないようにしてください。ファイルシステム内のイメージURLまたは絶対パスをデータベーステーブルに保存してください。

画像データをechoに変更する場合は、headerの情報を正しく設定してください。 右端がheaderでなければ、クライアント側に文字列として出力されます。画像がJPEGである場合は、次のような画像を印刷するechoを使用する前に

だから、あなたはヘッダコードを追加することができます。

header("Content-type: image/jpeg"); 
echo base64_decode($my_image); 
(あなたが base64を用いて画像データをエンコードしている場合も base64_decodeを行うことを忘れないでください)

pngの場合、次のように使用できます。

header("Content-type: image/png"); 
echo base64_decode($my_image); 
+3

注:文字列はbase64なのでbase64を画像の – KhorneHoly

+0

@KhorneHolyに戻すには 'base64_decode()'を使う必要があります。私は私の答えを編集しました。 – Codemole

関連する問題