はじめに
ファイルアップロード画面とphpの処理のやり方について
紹介していきます。
フォーム画面
ファイルのアップロードを行う場合、フォームに特別な指定をする必要がある。
フォーム部分だけ単純に書いてみると
<form action="test.php" method="post" enctype="multipart/form-data"> <input name="my_img" type="file" id="my_img" size="50" /> <input type="submit" value="送信する" /> </form>
enctypeでmultipart/form-dataを指定することでファイルのアップロードが
可能になる。またactionでファイルのアップロード処理をするphpファイルの指定
をしている。
gist1fd74e8e245972d0e2f58e46289b1e85
php側
次にphp側の処理。処理する内容はアップロードされたファイル名の取得と
そのファイルの移動だけ。
gist6d3f1551f247877eef490ea629850544
結果
まずフォーム画面
ファイル選択画面 送信するをクリックすると
アップロード先のフォルダにファイルがアップロードされている。
セキュリティ対策
先ほどのコードはただアップロード処理をするだけで
セキュリティ対策してないので、少ししていきます。
html側のコードは同じで大丈夫です。php側のコードに少し
付け加えていきます。
以下のコードでHTTP POSTでアップロードされたファイルかどうか
わかります。
悪意のあるユーザーがスクリプトをだまして、 本来見られてはいけないはずのファイル (/etc/passwd など) にアクセスすることを防止したい場合に、この関数は有用です。
$filename = $_FILES['gif']['tmp_name']; is_uploaded_file($filename);
gist5c1737947790a292065e74ceff0cb53a