ホームページ  >  記事  >  php教程  >  PHPを使用して画像をデータベースにアップロードする

PHPを使用して画像をデータベースにアップロードする

WBOY
WBOYオリジナル
2016-06-21 08:58:31837ブラウズ

アップロード|データ|データベース

ご質問がございましたら、こちらまでご連絡ください: http://www.webjx.com web@webjx.com
転載の場合は出典を明記してください

今日は私が教えますPHP を使用して実装する方法 画像を MYSQL データベースにアップロードします。 このチュートリアルでは、3 つの PHP ファイルを作成する必要があります:

readdir.php - 画像をデータベースに入れるコード
image.php - 実際の画像を表示するコード
view.php - データベース内の画像のコードを呼び出す方法を示すコード

1. データベースを作成します

CREATE TABLE `images` (
`imgid` INT NOT NULL AUTO_INCREMENT ,
`sixfourdata` LONGTEXT NOT NULL ,
PRIMARY KEY ( `imgid` )
);
READDIR.PHP

特定のコンテンツ:
$ dbcnx = mysql_connect("localhost" , "username", "password");
mysql_select_db("base64imgdb");
?>
'ディレクトリ
を開く必要があります。/"
'readdir.php ファイル 次のディレクトリを見つけます:
$path = "./";
$dir_handle = opendir($path) または die("ディレクトリ $path を開けません");

次の部分はさらに難しくなります。この部分を注意深く検討する必要があります: 画像を分類し、使用されているデータの一部を読み出す

fopen

'conversion

base64_encode

'テーブルに挿入

while ($file = readdir($dir_handle)) {
$filetyp = substr($file, -3);
if ($ filetyp == 'gif' OR $filetyp == 'jpg') {
$handle = fopen($path . "/" . $file,'r');
$file_content = fread($handle, filesize($path . "/" . $file));
fclose($handle);
$encoded = chunk_split(base64_encode($file_content));
$sql = " INSERT INTO 画像 SET sixfourdata ='$encoded'";
mysql_query($sql);
}
}
?>

設定したディレクトリを閉じて、次の処理を行います。

closedir($dir_handle);
echo("complete");
mysql_close($dbcnx);
?>

読み取り画像のコード: IMAGE .PHP
このコードは難しいので、詳しく調べる必要があります

$dbcnx = mysql_connect("localhost", "username", "パスワード");
mysql_select_db( "base64imgdb");
?>
画像を読み出すために使用するコード image.php?img=x:
$ img = $_REQUEST["img"];
?>
その後、データベースに接続して、
$result = mysql_query("SELECT * FROM 画像 WHERE imgid=" . $img . "");
if (!$result) {
echo("リクエストエラー: " . mysql_error() . "" );
exit();
}
while ($row = mysql_fetch_array($result)) {
$imgid = $row["imgid"];
$encodeddata = $row ["sixfourdata"];
}
?>

mysql_close($dbcnx);
echobase64_decode($encodeddata);
?>

ここでは、base64 でエンコードされた画像のデータ形式を理解する必要があります。

「具体的な写真を見てみましょう!」 VIEW.PHP

image.php?img=1

image.php?img=357



完全な例を見てください。

readdir.php:
#############################
# DB 接続
# これらの値を変更します
##############################
$dbcnx = mysql_connect ("localhost", "username", "password");
mysql_select_db("base64imgdb");

$path = "./";
$dir_handle = opendir( $path) またはdie("ディレクトリ $path を開けません");
while ($file = readdir($dir_handle)) {
$filetyp = substr($file, -3);
if ($filetyp = = 'gif' OR $filetyp == 'jpg') {
$handle = fopen($file,'r');
$file_content = fread($handle,filesize($file) );
fclose($handle);
$encoded = chunk_split(base64_encode($file_content));
$sql = "画像に挿入 SET sixfourdata='$encoded'";
mysql_query( $sql);
}
}

closedir($dir_handle);
echo("complete");
mysql_close($dbcnx);
?>
イメージ。 php:
$dbcnx = mysql_connect("localhost", "ユーザー名", "パスワード");

mysql_select_db("base64imgdb");

$img = $_REQUEST["img"];

$result = mysql_query("SELECT * FROM 画像 WHERE imgid=" . $img . "");

if (! $result) {

echo("クエリ実行エラー: " .mysql_error() . "");
exit()
}
while ($row) = mysql_fetch_array($result) ) {
$imgid = $row["imgid"];
$encodeddata = $row["sixfourdata"]
}
mysql_close($ dbcnx);
echobase64_decode($encodeddata);
?>
そして view.php (これを投稿する必要はありません..)

>..

..

< ;/ html>



声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。