[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
⇒[[山内の授業のページ/08春/プロジェクト]]
アクセス数 &counter(); このページの最終更新 &lastmod();
***ファイルのアップロードのサンプル [#t3ed2c85]
アップロードのサンプルコード(2011バージョン=ファイルをcreateせず、
画像データをデータベース内にバイナリデータとして保存する方法)
uptest.htmlファイル
<html>
<body>
<form enctype="multipart/form-data" action="uploadaction.php" method="POST">
<!-- MAX_FILE_SIZE はファイルフィールド用に必須です -->
<input type="hidden" name="MAX_FILE_SIZE" value="30000" />
<!-- input 要素の名前が $_FILES 配列での名前となります -->
<input name="uptest" type="file" />
<input type="submit" value="ファイルを送信" />
</form>
</body>
</html>
uploadaction.phpファイル
<?php
print("<html><body>");
$fname = $_FILES['uptest']['tmp_name']; //この情報は決めうち
$foriginalname = $_FILES['uptest']['name'];
$content = file_get_contents($fname);
include(".ht_mytest");
$MyLink = mysql_connect($MySQLHost, $MySQLUserName, $MySQLPassword);
mysql_select_db($MySQLDatabase, $MyLink);
$user = "Taro"; //この情報は本番ではどこからか持ってくること
$content2 = mysql_real_escape_string($content); // このおまじないは必須
$MyQuery = "INSERT into blubtest values ('$title','$content2','$user')";
$MyResult = mysql_query($MyQuery, $MyLink);
$MyQuery = "SELECT * FROM blubtest"; //テーブル名はblubtestとしてある
$MyResult = mysql_query($MyQuery, $MyLink);
while ($MyRow = mysql_fetch_array($MyResult, MYSQL_ASSOC)) {
$title = $MyRow["title"];
$name = $MyRow["name"];
print("<hr>\n" . $title . " | " . $name . "<br>\n");
print('<img src="show.php?title=' . $title . '">'); //show.phpは別途定義
}
mysql_free_result($MyResult);
mysql_close($MyLink);
print("</body></html>");
?>
show.phpファイル~
これは<img>タグのsrc部分に書かれるファイル名で、普通ならsrc="xxx.gif"とかイメージファイルのファイル名を書くのだが、ここでは「イメージデータを(データベースから読み出して端末へ送り出してくれるPHPプログラム」を置く。ちなみに、show.phpの引数として、show.php?title=ホゲホゲのように、画像データにつけた「タイトル」を渡す。
<?php
// MySQLから画像データの入った列を読み込む
$title = $_GET['title'];
include(".ht_mytest");
$MyLink = mysql_connect($MySQLHost, $MySQLUserName, $MySQLPassword);
mysql_select_db($MySQLDatabase, $MyLink);
$query = "select * from blubtest where title='" . $title . "'"; //テーブル名blubtest、属性名title
$result = mysql_query($query);
$row = mysql_fetch_row($result);
// 画像ヘッダとしてgifを指定 (JPEGの時は image/jpeg を指定すること)
print(header("Content-Type: image/gif"));
// バイナリデータを直接表示。DBの表の要素1(=2番目)のカラム(属性)
print $row["1"];
?>
注意: 下から4行目のところでContent-Type: image/gifを送出しているため、GIFファイルに限定される。JPEGファイルを描画したければimage/jpegと指定する。~
データベース中のバイナリデータの種類を区別して、どちらでも描画できるようにするためには、データベースに画像を登録するときにどちらの形式であるか(gifかjpegか)を書いておくフィールドを設け、書いておく。描画するときにそれを読み出して、gifかjpegかに応じて、異なるheaderを送り出すようにする必要がある。
終了行:
⇒[[山内の授業のページ/08春/プロジェクト]]
アクセス数 &counter(); このページの最終更新 &lastmod();
***ファイルのアップロードのサンプル [#t3ed2c85]
アップロードのサンプルコード(2011バージョン=ファイルをcreateせず、
画像データをデータベース内にバイナリデータとして保存する方法)
uptest.htmlファイル
<html>
<body>
<form enctype="multipart/form-data" action="uploadaction.php" method="POST">
<!-- MAX_FILE_SIZE はファイルフィールド用に必須です -->
<input type="hidden" name="MAX_FILE_SIZE" value="30000" />
<!-- input 要素の名前が $_FILES 配列での名前となります -->
<input name="uptest" type="file" />
<input type="submit" value="ファイルを送信" />
</form>
</body>
</html>
uploadaction.phpファイル
<?php
print("<html><body>");
$fname = $_FILES['uptest']['tmp_name']; //この情報は決めうち
$foriginalname = $_FILES['uptest']['name'];
$content = file_get_contents($fname);
include(".ht_mytest");
$MyLink = mysql_connect($MySQLHost, $MySQLUserName, $MySQLPassword);
mysql_select_db($MySQLDatabase, $MyLink);
$user = "Taro"; //この情報は本番ではどこからか持ってくること
$content2 = mysql_real_escape_string($content); // このおまじないは必須
$MyQuery = "INSERT into blubtest values ('$title','$content2','$user')";
$MyResult = mysql_query($MyQuery, $MyLink);
$MyQuery = "SELECT * FROM blubtest"; //テーブル名はblubtestとしてある
$MyResult = mysql_query($MyQuery, $MyLink);
while ($MyRow = mysql_fetch_array($MyResult, MYSQL_ASSOC)) {
$title = $MyRow["title"];
$name = $MyRow["name"];
print("<hr>\n" . $title . " | " . $name . "<br>\n");
print('<img src="show.php?title=' . $title . '">'); //show.phpは別途定義
}
mysql_free_result($MyResult);
mysql_close($MyLink);
print("</body></html>");
?>
show.phpファイル~
これは<img>タグのsrc部分に書かれるファイル名で、普通ならsrc="xxx.gif"とかイメージファイルのファイル名を書くのだが、ここでは「イメージデータを(データベースから読み出して端末へ送り出してくれるPHPプログラム」を置く。ちなみに、show.phpの引数として、show.php?title=ホゲホゲのように、画像データにつけた「タイトル」を渡す。
<?php
// MySQLから画像データの入った列を読み込む
$title = $_GET['title'];
include(".ht_mytest");
$MyLink = mysql_connect($MySQLHost, $MySQLUserName, $MySQLPassword);
mysql_select_db($MySQLDatabase, $MyLink);
$query = "select * from blubtest where title='" . $title . "'"; //テーブル名blubtest、属性名title
$result = mysql_query($query);
$row = mysql_fetch_row($result);
// 画像ヘッダとしてgifを指定 (JPEGの時は image/jpeg を指定すること)
print(header("Content-Type: image/gif"));
// バイナリデータを直接表示。DBの表の要素1(=2番目)のカラム(属性)
print $row["1"];
?>
注意: 下から4行目のところでContent-Type: image/gifを送出しているため、GIFファイルに限定される。JPEGファイルを描画したければimage/jpegと指定する。~
データベース中のバイナリデータの種類を区別して、どちらでも描画できるようにするためには、データベースに画像を登録するときにどちらの形式であるか(gifかjpegか)を書いておくフィールドを設け、書いておく。描画するときにそれを読み出して、gifかjpegかに応じて、異なるheaderを送り出すようにする必要がある。
ページ名: