2012-04-04 6 views
0

イメージのフィールドを持つ単純なmySQLデータベースを作成する必要があります。mySQLサーバー側に画像を読み込むことはできますか?

フィールドのタイプと、サーバー上のディレクトリなどからアップロードする方法について簡単な例がありますか?

ありがとうございました。

エリック

答えて

1

は、BLOBストレージの基本的な例である:

CREATE TABLE IF NOT EXISTS `files` (
    `id` int(11) NOT NULL AUTO_INCREMENT, 
    `filename` varchar(255) DEFAULT NULL, 
    `ext` varchar(5) DEFAULT NULL, 
    `filedata` blob, 
    PRIMARY KEY (`id`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=0 ; 

<?php 
$db = mysql_connect('localhost', 'user', 'pass') or die('Could not connect:' . mysql_error()); 
mysql_select_db('the_database',$db); 

if(isset($_FILES['upload'])){ 

    if (is_uploaded_file($_FILES['upload']['tmp_name'])) { 
     $file_parts = pathinfo($_FILES['upload']['name']); 

     $file['name'] =$file_parts['filename']; 
     $file['ext'] =$file_parts['extension']; 
     $file['data'] =addslashes(file_get_contents($_FILES['upload']['tmp_name'])); 

     mysql_query('INSERT into files (id,filename,ext,filedata) values ("","'.$file['name'].'","'.$file['ext'].'","'.$file['data'].'")',$db) or die(mysql_error()); 
     $notice="File Uploaded successfully"; 
    } 
} 
?> 


<html> 
<head> 
<title>BLOB Upload</title> 
</head> 
<body> 

<form method="POST" enctype="multipart/form-data" action=""> 
<h1 align="center">BLOB Upload</h1> 
    <p align="center"><input type="file" name="upload" size="40"></p> 
    <p align="center"><input type="submit" value="Upload"></p> 
    <?php if(isset($notice)){echo '<p align="center">'.$notice.'</p>';}?> 
</form> 

</body> 

</html> 
+0

旧答え、すぐに更新します。 PDOで –

2

データベースに画像を保存する(少なくとも)2つの方法があります -

  1. ストアファイルシステム上のファイルへの参照
  2. ストア内のバイナリデータ、それらにデータベース内に格納されたデータベース

バイナリデータはBLOBS(バイナリラージオブジェクト)として知られている、あなたはもっとここまで読むことができます: -

0

fwriteまたはphp GD libaryを使用して画像をフォルダに配置します。

次に、画像のパスをサイズ、幅、高さ、名前などの追加情報と共にデータベースに保存して、フィルタリング/並べ替えを可能にします。

2

LOAD_FILE関数を使用すると、ファイルの内容を文字列として返すことができます。 - ここで

INSERT INTO table_name VALUES (LOAD_FILE('img.png'));