【初学者向け】PHPで画像を保存する

今日はPHPで画像の保存方法を紹介していきます。

どんなwebアプリでも画像の保存は必要になるので、保存の仕組みを理解していきましょう。

画像を保存する準備をしよう

~$ mkdir image
~$ cd image
~$ mkdir save_image
~$ touch image.php

save_imageフォルダに画像を保存していきます。

画像を保存する

<?php
    error_reporting(0);
    include "Warning.php";
    $image = $_FILES['image']['name'];
    move_uploaded_file($_FILES['image']['tmp_name'], './save_image/'. $image);
?>


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <form action="" method="POST"enctype="multipart/form-data">
        <input type="file" name="image" value="">
        <button type="submit">保存する</button>
    </form>
</body>
</html>

関数の使い方も重要なのですが、本当に重要なのは、$_Fileの中身です。

少し覗いてみましょう。

Array ( [image] =>
        Array ( 
         [name] => 4247802_s.jpg
         [type] => image/jpeg
         [tmp_name] => /private/var/folders/_c/q0jnhqg55694ccmqkkw5rzfw0000gn/T/phpRJsZtJ
         [error] => 0 [size] => 150605
       )
)

連想配列になっていますね。

画像を保存する時は、

  • tmp_name = 画像
  • name = 画像の名前

が重要になります。

まとめ

  • move_uploaded_fileメソッドを使用する
  • tmp_nameが画像のURL
  • nameが画像の名前
  • $_FILESは連想配列になっている

今日は以上です。

画像はDBに保存もするので、またあとでそのやり方も紹介します。

参考:

PHP+MySQL(MariaDB) Webサーバーサイドプログラミング入門