Windowsで画像オブジェクトをバイナリデータでMySQLに保存しています。
C#でImageConverterクラスによる変換を使っています。
参考ページ
バイナリデータはBLOB型でMySQLに登録しています。
やりたいことは、iOSアプリで上記のデータを利用して画像を表示させることです。
iOSアプリを作成する前に、サーバ側のPHPの処理を作成している段階です。
分からないことは、
C#で変換したバイナリデータをPHPで画像として表示させる方法です。
PHPでは、取得した画像バイナリデータをimgタグで表示できると思うのですが、現状上手く画像を表示することができません。
var_dump($type)は「string(3)"???"」と表示されて、imgタグは?マークが表示されています。
imgタグに画像を表示させるにはどのように改善すれば良いでしょうか?
画像オブジェクトをバイナリデータに変換して、そのデータをMySQLを通じてC#でもPHPまたはiOSでも利用することができる方法があればお教え下さい。
C#とPHPで同じ画像オブジェクトを同じバイナリデータに変換することができるのでしょうか?
よろしくお願いいたします。
ちなみにPHPだけだとfile_get_contents関数を使って、バイナリデータの保存と画像変換はすることができました。
<html> <head> <title>PHP TEST</title> </head> <body> <?php // DB情報 $host='192.168.1.110'; $db='test'; $user='testuser'; $pass='test1234'; // charsetを指定 $options = array(PDO::MYSQL_ATTR_INIT_COMMAND=>"SET CHARACTER SET 'utf8'"); try{ // DBに接続 $dbh = new PDO("mysql:host=$host;dbname=$db",$user,$pass,$options); print('<br>'); if ($dbh == null){ print('接続に失敗しました。<br>'); }else{ print('接続に成功しました。<br>'); } $dbh->query('SET NAMES sjis'); // SQL文 bID:INT型 bData:BLOB型(画像オブジェクト→バイト配列) $sql = 'SELECT bID,bData FROM blobtest WHERE bID=200'; // クエリ実行 $stmt = $dbh->query($sql); // データを表示 while($result = $stmt->fetch(PDO::FETCH_ASSOC)){ print($result["bID"]."<br/>"); print("<br/><br/>"); // TEST1 //$data=base64_decode($result["bData"]); // TEST2 //$data=$target = imap_base64($result["bData"]); // バイナリデータを文字列に変換 $type = finfo_buffer(finfo_open(), $result["bData"];, FILEINFO_EXTENSION); //$type = finfo_buffer(finfo_open(), $data;, FILEINFO_EXTENSION); var_dump($type); // 取得した画像バイナリデータをimgタグで表示 print ("<img src='$type'>"); Print ("<br/><br/>"); } }catch (PDOException $e){ print('Error:'.$e->getMessage()); die(); } $dbh = null; ?> </body> </html>
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/07/14 13:19
退会済みユーザー
2019/07/14 13:28
2019/07/14 16:51
退会済みユーザー
2019/07/14 17:07
退会済みユーザー
2019/07/15 00:18 編集
退会済みユーザー
2019/07/15 00:56
2019/07/16 10:29