Created
November 3, 2022 02:50
-
-
Save 20m61/e1a01090aa3974728cfa2012b8da4956 to your computer and use it in GitHub Desktop.
画像アップロードと一覧の表示
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
$dsn = "mysql:host=***; dbname=***; charset=utf8"; | |
$username = "***"; | |
$password = "***"; | |
try { | |
$dbh = new PDO($dsn, $username, $password); | |
} catch (PDOException $e) { | |
echo $e->getMessage(); | |
} | |
if (isset($_POST['upload'])) {//送信ボタンが押された場合 | |
$image = uniqid(mt_rand(), true);//ファイル名をユニーク化 | |
$image .= '.' . substr(strrchr($_FILES['image']['name'], '.'), 1);//アップロードされたファイルの拡張子を取得 | |
$file = "images/$image"; | |
$sql = "INSERT INTO images(name) VALUES (:image)"; | |
$stmt = $dbh->prepare($sql); | |
$stmt->bindValue(':image', $image, PDO::PARAM_STR); | |
if (!empty($_FILES['image']['name'])) {//ファイルが選択されていれば$imageにファイル名を代入 | |
move_uploaded_file($_FILES['image']['tmp_name'], './images/' . $image);//imagesディレクトリにファイル保存 | |
if (exif_imagetype($file)) {//画像ファイルかのチェック | |
$message = '画像をアップロードしました'; | |
$stmt->execute(); | |
} else { | |
$message = '画像ファイルではありません'; | |
} | |
} | |
} | |
$id = rand(1, 5); | |
try { | |
$dbh = new PDO($dsn, $username, $password); | |
} catch (PDOException $e) { | |
echo $e->getMessage(); | |
} | |
$sql = "SELECT * FROM images WHERE id = :id"; | |
$stmt = $dbh->prepare($sql); | |
$stmt->bindValue(':id', $id); | |
$stmt->execute(); | |
$image = $stmt->fetch(); | |
?> | |
<h1>画像アップロード</h1> | |
<?php | |
$dir = "images/"; | |
$filelist = glob($dir . '*'); | |
foreach ($filelist as $file) { | |
if (is_file($file)) { | |
echo <<< eof | |
<li><img src="{$file}" width="300" height="300"></li> | |
eof; | |
} | |
} | |
?> | |
<!--送信ボタンが押された場合--> | |
<?php if (isset($_POST['upload'])): ?> | |
<p><?php echo $message; ?></p> | |
<?php else: ?> | |
<form method="post" enctype="multipart/form-data"> | |
<p>アップロード画像</p> | |
<input type="file" name="image"> | |
<button><input type="submit" name="upload" value="送信"></button> | |
</form> | |
<?php endif;?> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment