【PHP・MySQL】データベースに画像を保存・表示する方法 第3回「画像を保存する」
Sara
Code for Fun
ここまでの記事はこちら
サイズが大きすぎる画像を保存できてしまうと、サーバーに負担がかかってしまいます。
前回の形式チェックと同じように画像ファイルのサイズチェックも入れておきましょう。
第6回「形式チェック」が完了している状態から始めます。
今回は 1MB までのファイルでチェックを入れてみましょう。
前回形式チェックを入れた箇所にコードを追加します。(10~14行目)
$maxFileSize = 1048576;
$_FILES[‘image’][‘size’]; で取得した画像サイズの単位は Byte(バイト)です。
1 MB = 1024 KB = 1048576 Byte
なので $maxFileSize = 1048576; としています。
if ($size > $maxFileSize || !in_array($type, $validFileTypes)) {
形式チェックと一緒にサイズの判定も入れています。
「画像サイズが $maxFileSize を超えている」または「形式が $validFileTypes に含まれていない」場合にエラーメッセージを表示します。
エラーメッセージを表示すると、左側に表示されるはずの登録済み画像が消えてしまいます。
登録済みの画像が常に表示されるようにコードを修正します。(1~13行目)
以下のように動いていれば完成です。