画像をブラウザ上から保存できる簡単なスクリプトを書いてください。お願いします。
保存するDBのSQLファイルもお願いします。
http://lists.sourceforge.jp/mailman/listinfo/seasar-php
Seasar-php �����ڡ���
ここで質問してみてはいかがでしょうか?
アバウトな質問過ぎて、回答にも困ります。
ファイル名はどうするつもりですか?
サイトで勝手につけるのですか?
拡張子は?
画像のサイズは?
出力形式は?
GDは入っているのか?
PHPのバージョンは?
Mysqlのバージョンは?
http://www.doyouphp.jp/sample/sample_ora_blob.shtml
Do You PHP? - BLOB�^�̗��p
Googleなどで検索すればすぐに見つかると思いますが....
このURLはわかりやすいと思います
MySQLですが。
http://sourceforge.net/projects/photoarch/
SourceForge.net: PhotoArch
PHP+MYSQLのWeb画像データベースです
オープンソースなのでソースコードをみながら研究してみてはいかがですか?
ん〜ソースコードをじっくり見ている時間はないのです。。
http://www.itmedia.co.jp/enterprise/0309/24/epn25.html
エンタープライズ:MySQLにファイルを格納する
ここが参考になります。
まず、画像を格納するテーブルを作成する必要があります。
テーブル作成の際、バイナリデータを扱えるフィールドを用意しておいてください。
例
テーブル名 : image
カラム :
・id (auto_increment)
・img_data (BLOB)
といった感じです。
(一番シンプルな例だと思います。)
PHPをお使いであれば、phpMyAdminを使ってGUIでテーブルを作成すれば簡単ですよね。
画像を保存するフィールドは1.5KB程度であればBLOB(最大サイズは64KB)で問題ありません。
より大きい画像も格納したい場合、MEDIUMBLOB(最大サイズは16MB)にしておけば良いと思います。
http://ns1.php.gr.jp/pipermail/php-users/2003-April/015326.html
[PHP-users 14794]画像データ格納時のエラー(文字化けのため再投稿)
このソースでほぼいけます。
実際に試してみました。
(もう少しキレイに書き直せそうな気もしますが、とりあえず。)
formのactionは
action=”<?echo $PHP_SELF;?>”
のように変更しておけば、ファイル名に影響されないので良いと思います。
また、
mysql_connect()、mysql_select_db()
に渡す値は環境に合ったものに変更してください。
MAX_FILE_SIZEのvalueを使ったファイルサイズチェックは実装していないようですので、PHPでサイズチェックしてエラーにする処理を入れておいた方が良いと思います。
http://www.hatena.ne.jp/1139591611
人力検索はてな - (PHP)画像アップローダーをPHPで作りたいと思います。 ただアップロードするのではなく、アップロードされた画像の縦横サイズ、ファイル自体のサイズを指定されたサイズに..
画像サイズを変更して格納したい、という場合などはGDと組み合わせてみてください。
ちょっと時間(とスキル!)がないのでキレイなサンプルソースを準備できませんが、上記の情報でトライしてみていただけませんか。
回答ありがとうございます。
何とかDBの格納までできました。ありがとうございます。ちょっと質問からずれますが、この格納したデータをDBから取り出し再度画像として表示させるにはどうしたらいいのでしょうか?
そのまま表示するとtü_Z8åŒ(Jv7Äh˜ßml¶jãåLëOÜn¼ÛñÁ5´Èâà}ƒÍg¯E㙫߯Ÿ¿Ê―x.ÔwQ2ópr=øèáCvといったものが表示されます。
度々失礼します。
このソースあたりが参考になると思います。
後で読んでみてください。
とりあえず動かしたい、ということであれば、以下のようにしてみてください。
まず、画像表示用のスクリプトを準備します。
名前は仮に image_display.php としておきます。
idをキーにしてDBを検索し、画像の内容を返します。
image_display.php
<?
// 本来は、DB接続ができたかどうか、DBを選択できたかどうか
// SQLの結果が空ではないか、などをチェックすべきですが、省略します
// DB接続
$conn=mysql_connect(”localhost”,”user_id”,”password”);
// DB選択
mysql_select_db(”test”);
// SQL問合せ
// このphpを呼び出す際、idを指定
$result = mysql_query(”select * from image where(id=$_GET[id])”);
// 問合せ結果を配列にセット
$row = mysql_fetch_array($result);
// 本当はここでheader()で適切なContent-typeを出力した方が良いはず
echo $row[1]; // テーブルの2列目のカラムを取得
?>
表示用のスクリプトは以下の通りです。
<html>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8”>
<title>画像表示</title>
</head>
<body>
<p>MySQLのBLOBにバイナリで格納した画像を表示してみます。 </p>
<?
echo ”<img src=¥”image_display.php?id=1¥”>”
?>
</body>
</html>
上記の例では
image_display.php?id=1
とすることで、id列の値が1の行のimg_data列に格納された画像を表示します。
※本来は参考URLにもあるようにDBに格納するファイルのMIMEもDBの別カラムに持たせておいて、その内容を元にheader()で適切なヘッダを出力すべきだと思います。
ありがとうございます。やっと実装できました。
すいません。
ファイル名は $user.”.jpg” で考えています。
拡張子は .jpg
画像サイズは 1.5KB
出力形式 わかりません
GD 入っているか分かりません
PHP Ver5
MySQL Ver5.0.17
出力形式はわかりませんのでアドバイスをいただけたら幸いです。
よろしくお願いします。