サーバーにファイルをアップロードする方法

選択したファイルをサーバーにアップロードする

ファイル選択ボタンを押し、好きな画像を選択、そしてアップロードボタンをクリックすると・・・
サーバーにアップロード出来た画像が表示されました。

早速、作ってみましょう

upload-input.php

<?php require ‘header.php’; ?>

<p>アップロードしたいファイルを選択してください</p>
<form action=”upload-output.php” method=”post” enctype=”multipart/form-data“>
<input type=”file” name=”file”>
<input type=”submit” value=”アップロード”>
</form>
<?php require ‘footer.php’; ?>


enctype属性にはmultipart/form-dataを指定します。
enctypeとはMIMEタイプを指定するための属性です。MIMEとはデータの種類を表現する方法や、データを変換する方法を定めた規格です。
multipart/form-dataは、HTTPでファイルをアップロードする際に使うMIMEタイプです。
type属性にはfileを選択します。

upload-output.php

<?php require ‘header.php’; ?>

<?php
if (is_uploaded_file($_FILES[‘file’][‘tmp_name’])){
   
   
「アップロードされたファイルの確認」
formタグのファイル選択からアップロードされたファイルは、一時的なファイルに保存されます。この一時的なファイルのファイル名は$_FILES[‘file’][‘tmp_name’]で取得できます。

その取得した一時的なファイルが、入力画面からアップロードされたファイルか否かを調べるのがis_uploaded_file(ファイル名)です。
if (!file_exists(‘upload’)){
        mkdir(‘upload’);
    }
「フォルダの作成」
file_exists関数は、引数に指定したフォルダが存在する場合、TRUEを返します。ここではフォルダが存在しない場合にフォルダ作成させてます。
「!」があるためTRUEではない場合という条件を書いてuploadというフォルダを作らせてます。
フォルダを作成するにはmkdir関数を使います。
$file = ‘upload/’.basename($_FILES[‘file’][‘name’]);
   
「アップロードされたファイルの保存」
・作成されたフォルダ名upload。
・ファイル名だけを取り出すbasename関数、その引数はパス(ファイル場所を表す文字列)です。
・アップロードされたファイルの名前を取得して、保存先のファイル名を作成する$_FILES[‘file’][‘name’]
・文字列を連結する「.」演算子を用いて、フォルダ名とファイル名を結合。
・フォルダ名とファイル名の間は「/」で区切ります。
if (move_uploaded_file($_FILES[‘file’][‘tmp_name’], $file)){
        echo $file, ‘のアップロードに成功しました’;
        echo ‘<p><img alt=”image” width=”100px” height=”100px” src=”‘, $file, ‘”></p>’;
    } else {
        echo ‘アップロードに失敗しました’;
    }
} else {
    echo ‘ファイルを選択してください’;
}
?>
<?php require ‘footer.php’; ?>
アップロードされたファイルを移動する
・アップロードされたファイルを、保存先のファイルに移動するmove_uploaded_file(一時的なファイル、保存先のファイル)
・一時的なファイルはプログラムが終了すると削除されます。
PHPについて

この本から引用、参考にして学び、完成させることができました。しかし、ここではプログラミング初心者の私が詳しく解説することは、おこがましく、難しく出来ません(ToT)
その点、この本では丁寧な解説が載っていますので、解説とともにコードを書き、完成させればより深く学ぶことができます(^.^)、実際、初心者の私でもわかりやすかったです。身に付け消えないスキルが3,000円弱ならコスパよく、買っておいてよかったと満足してます。


短期間でのレベルアップにはプロから学ぶのもありです。

キャリアアップに必要なスキルを取得しよう。

オンラインで受講ができるスクールですので、全国どこからでも。

就職・転職支援