ファイル入力フィールドを持つフォームがあります:
<tr align="left">
<td>Image :</td>
<td align="left">
<input type="file" name="ImageFile" size="18">
</td>
</tr>
次に、送信時にこの画像ファイルを処理します。
$image_tmpname = $_FILES['ImageFile']['name'];
$imgdir = "blogImages/";
$imgname = $imgdir.$image_tmpname;
$blogs = new Blogs();
move_uploaded_file($_FILES['ImageFile']['tmp_name'], $imgname);
$insert = $blogs->insertBlog($heading, $article, $date, $imgname);
画像を保存したいディレクトリが呼び出さblogImages
れ、上記と同じディレクトリにあります。
上記で、insertBloginsertBlog
クラス内で呼び出される関数を呼び出すと、次のようになります。Blogs'. Insert blog takes all the info and inputs the data to a mysql table. The code for
function insertBlog($heading, $article, $date, $imgname){
$query = "INSERT INTO Blogs (BlogTitle, MainArticle, PostDate, Image) VALUES ('$heading', '$article', '$date', '$imgname')";
$oDatabase = new database;
$connection = $oDatabase->Connect();
if (!mysql_select_db($oDatabase->Name(), $connection))
$oDatabase->ShowError("Blogs.insertBlog");
if (!(@ mysql_query ($query, $connection)))
$oDatabase->ShowError("Blogs.insertBlog");
return (mysql_insert_id());
}
ユーザーがフォームに入力すると、画像情報以外のすべての情報が MySQL テーブルに正しく保存されます。また、実際の画像はblogImages
フォルダに保存されません。blogImages
では、このスクリプトでイメージをフォルダーにアップロードし、そのパスを mysql テーブルに保存するにはどうすればよいでしょうか。現時点では、画像をデータベースに保存せずblogImages/
、MySQL テーブルの画像パス フィールドに値を入れるだけです。