• 締切済み

画像の格納

mysqlに画像を格納してPHPで表示させようとしてるんですが、うまくいきません。下記のような文字列が延々と表示されます。 ????? JFIF? ?H?H?????C?$;'$!!$I47+;VL[YULS どうしてこうなるのでしょうか?

  • MySQL
  • 回答数1
  • ありがとう数0

みんなの回答

  • softimage
  • ベストアンサー率61% (68/111)
回答No.1

はじめまして。 画像データをテキストで表示させているのではないでしょうか? content-typeをimage/jpeg等に設定すればよくなると思います。 それか関数そのものがあったような気もします。

関連するQ&A

  • ページ間で画像を表示。mysqlに画像を格納すべき

    ページ間でjpeg(画像)を表示させたい場合、 mysqlでは何のデータが格納されるのでしょうか。 行数は1万ほどで、1枚50KBのjpegを1行あたり0枚~30枚使います。 1)jpegそのものを格納 負荷が大きいので、この方法は避けたいです。 2)jpegのパスを格納 負荷は少なく、PHPのscandir関数(http://shoyu-ramen23.jugem.jp/?eid=90) で枚数によって処理を分けて表示することができる。 3)枚数を格納 php側で枚数によって処理を分けて表示することができますが、 jpegの枚数が減ったときに、格納した枚数を変更しないといけない。 2が一番よさそうと考えているのですが、 phpでmysqlを扱う場合、こういった考え方をするのは間違いでしょうか。 ページから画像をアップロードすることはありません。この場合もmysqlに画像を格納すべきですか。

    • ベストアンサー
    • PHP
  • TEXTテーブルに¥が格納できない

    PHP5+MySQL5です。 ブラウザのフォームで入力されたデータを、PHPでMySQLに格納しています。 いろいろ調べてみたのですが解決できませんでした。 下記3点について教えてください。 ・半角の円マークが勝手に消える >>半角円マークを含む文字列をINSERTしても、円マーク以外の文字しか格納されません。SQL文には円マークが含まれていますので、MySQLの仕様なのか?と思っています。どうすれば半角円マークを格納できるのでしょうか? ・半角円マークと半角tがタブに変わる >>半角で「¥t」が含まれた文字列をINSERTすると、「¥t」の部分がタブに変わってしまいます。どうすれば半角の「¥t」を格納できるのでしょうか? ちなみに、以下のようにマジッククオートの処理をした後、INSERTしています。 if (get_magic_quotes_gpc()) { $hoge = stripslashes($_POST['hoge']); } else { $hoge = $_POST['hoge']; } ・他にもMySQLで扱えない文字や文字列があるのでしょうか? よろしくお願いします。

  • 画像データの取得と格納

    原因がなにかわからず困っています。 アドバイスをください。 やりたいことは -------------------------------------------------- (1)一時保管用のテーブル内から画像データをPHPにて表示。 (2)その後、他のテーブルに画像ファイルを格納。 -------------------------------------------------- (1)は取得できていて表示も可能。 ただ、それをAテーブルに格納すると画像データが壊れているのか×マークで表示され画像が表示できない。 プロパティで表示したときの画像パスから直接画像を表示しても表示できず。 phpMyAdmin上で画像ファイルを差し替えると表示可能。 以上のことからデータの内容が破損と思われる。 Aテーブルに格納する際、$temp_dataのバイナリを取得したものをそのまま放り込んでいますがこれがいけないのでしょうか? バイナリ以外のデータは正常に格納できています。 問題の画像データはJPEGで 取得・格納のデータ型はlongblob型。 mysql 5.0.67 php 5.2.6 Linux RedHat 2.6.9-78.ELsmp 本当に困っています。 よろしくお願いします。

    • 締切済み
    • PHP
  • MySQLのBLOBにバイナリで格納した画像を表示

    現在PHPを勉強しはじめた初心者です。今 MYSQLのデータベースを利用してUPLOADした画像を表示させたいと思っております。 そこでMYSQLのBLOBに画像を保存出来まではできたのですが、 そこから表示させる方法がどうしても分かりません。。 こちらが今やっていますスクリプトになります。 <html> <head> <meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8”> <title>画像表示</title> </head> <body> <p>MySQLのBLOBにバイナリで格納した画像を表示してみます。 </p> <?php echo <img src=”image_display.php?id=1”> ?> <?php $conn=mysql_connect('localhost','aaa','pass'); // DB選択 mysql_select_db(”alpha”); // SQL問合せ // このphpを呼び出す際、idを指定 $sql = select * from beta where(id=$_GET[id]); $result = mysql_query($sql); // 問合せ結果を配列にセット $row = mysql_fetch_array($result); echo $row[1]; // テーブルの2列目のカラムを取得 ?> </body> </html> 自分ではいったいなにが悪いのか分かりません。 どのたかお分かりになるかたいましたらご教授していただけませんでしょうか。 お願いします。

  • 空白を含んだ文字列がうまく格納(表示)できない

    こんにちわ。 空白(スペース)の入った文字列の格納(表示)について質問させてください。 以下のプログラムを実行すると、空白の含む文字列がうまく表示されません。 例えば、 in the worldと入力しても、inしか格納されていないみたいです。それはなぜでしょうか? また、どうすればそれを格納、表示させることができるのでしょうか?教えてください。よろしくお願いいたします。 #include <stdio.h> #include <string.h> main() { char buf[BUFSIZ]; char moji[31]; int i; printf("Input string: "); fgets(buf, sizeof(buf), stdin); moji[31] = '?0'; sscanf(buf, "%s", moji); i = 0; while (moji[i] != '?0') { printf("%c",moji[i]); i = i + 1; } printf("?n"); printf("%d letters?n", i); } 【実行例】 csx01:~> gcc prog.c csx01:~> a.out Input string: in the world in 2 letters

  • mysqlで長さ無制限の文字列を格納することはできますか?

    mysqlを用いて掲示板を作りたいです。その際に、簡素化のため、掲示板の全てのデータをmysqlに格納したいと思っています。 また、掲示板における本文の部分は、文字列の長さを無制限にするのが妥当だと思います。 しかし、mysqlのマニュアル(http://dev.mysql.com/doc/mysql/ja/BLOB.html)によると、一番大きい型であるLONGBLOB型の記憶容量は 2^32バイトとなっており、それを超える文字列は切り捨てられるとなっています。 そこで、ご教授いただきたいです。 長さ無制限の文字列をmysqlに格納する方法はありますか?そしてその場合はどうすればよいですか? それとも、長さ無制限の文字列をmysqlに格納する方法ははなく、その場合は別ファイルを用意し、そちらに書き込むなどをする必要がありますか? どうぞよろしくお願いします。

    • ベストアンサー
    • MySQL
  • PHP preg_match_all関数の配列をMysqlに格納したい

    PHP preg_match_all関数の配列をMysqlに格納したい PHP初心者です。 preg_march_all関数を使って正規表現でマッチングする練習を行っています。 preg_march_allを使った場合、マッチングした結果が多次元配列となって出力されると思うのですが、それらをそれぞれのレコードに分けてMysqlに格納したいと思っています。 php入門サイトのものを弄って作ったのですが、 while (! feof($fp)) { $s = fgets($fp); $n = preg_match_all($Pattern, $s, $ar, PREG_SET_ORDER); for ($i = 0; $i < $n; $i++) mysql_query("insert into seikihyougen1 (benri) value ('$ar[$i][2]')"); } 結果はマッチングした数のレコード分、benriカラムにArray[2]という文字列が入力されてしまいます。 これらをマッチングした文字列に直してMysqlに入れるにはどうすればよいのでしょうか?

    • ベストアンサー
    • PHP
  • MYSQLから画像を取り出したい

    PHPとMYSQLにて画像を表示したいのですが、 PHPmyadminにてBLOB型にJPG画像を手動で 入れて有ります、そこで下記のように取り出そうとしたのですが、文字の羅列が長く表示され、画像はでません。 $result = mysql_query("SELECT * FROM test"); $row = mysql_fetch_assoc($result); print ($row['image']); 文字の羅列が出るので、データははいっているとおもうのですが、取り出し方が悪いのでしょうか?

    • ベストアンサー
    • PHP
  • 格納

    例えばA123B124C125D126 などの文字列から各英文字に付属した値だけ取り出して格納しておくという 方法について知りたいんですが、 配列を使って格納しておく方法などはわかるんですが 他に方法はありませんか?

  • mysqlに格納したエクセルファイルの、シート内の文字列を検索したいの

    mysqlに格納したエクセルファイルの、シート内の文字列を検索したいのですが上手くいきません。 半角英数の文字列なら、以下のSQL文で引っ張ってくることができました。 SELECT * FROM テーブル名 WHERE 列名 LIKE '%abc%'; mysqlのバージョンは5.1です。 検索はPHPで行おうと思っています。 どなたか知っている方いらっしゃいましたら、よろしくお願いします。