Web サイトにアップロードできる画像を表示する際に問題があります。アップロード プロセス中に、ファイルの名前を変更し、画像をフォルダーに保存し、ファイル名をデータベースに保存します。以下にコードを示します。ご覧になる方々に、事前に感謝します:
写真をアップロードするフォーム:
<form method="post" action="PicPost.php" enctype="multipart/form-data">
<label for="Pic">Upload your pic: (JPG, JPEG PNG ou GIF | max. 1 Mo) :</label><br />
<input type="hidden" name="maxsize" value="1048576" />
<input type="file" name="Pic" id="Pic" />
<p>
<label>Tags
<input type="text" name="Tags" id="Tags" />
</label>
<br />
<input type="submit" name="submit" value="Submit" />
</p>
</form>
PicPost.php でアップロードを完了するコード:
<?php
$maxsize = '1048576';
if ($_FILES['Pic']['error'] > 0) $erreur = "Error";
if ($_FILES['Pic']['size'] > $maxsize) $erreur = "The file is too big";
$extensions_valides = array( 'jpg' , 'jpeg' , 'gif' , 'png' );
$extension_upload = strtolower( substr( strrchr($_FILES['Pic'] ['name'], '.') ,1) );
if ( in_array($extension_upload,$extensions_valides) ) echo "Correct extension";
$name = md5(uniqid(rand(), true));
$resultat = move_uploaded_file($_FILES['Pic']['tmp_name'],$name);
if ($resultat) echo "Upload successful";
try
{
$bdd = new PDO('mysql:host=localhost;dbname=mydb', 'root', '');
}
catch (Exception $e)
{
die('Erreur : ' . $e->getMessage());
}
$req = $bdd->prepare('INSERT INTO picdb (Picture, Tags)
VALUES(?, ?)');
$req->execute(array($name, $_POST['Tags']));
タグを使用してデータベース内の画像を検索するコード:
<form id="form1" name="form1" method="post" action="SearchPost.php">
<label>
<input type="text" name="Search" id="Search" />
</label>
<label>
<input type="submit" name="Submit" id="Submit" value="Search" />
</label>
</form>
SearchPost.php で検索した画像を表示するコード:
try
{
$bdd = new PDO('mysql:host=localhost;dbname=mydb', 'root', '');
}
catch (Exception $e)
{
die('Erreur : ' . $e->getMessage());
}
$reponse = $bdd->query('SELECT Picture FROM picdb WHERE
Tags=\''.$_POST['Search'].'\'');
while ($donnees = $reponse->fetch())
echo "<img src=".$donnees['Picture']."/>";
$reponse->closeCursor();