【入門】PHPでファイルアップロードサービスを作る。|サンプルコードあり
今回は、画像アップロードサービスをメインにやっていきます。
画像をアップロードしたらurlが返ってくるというものです。
それではやっていきましょう。
動作環境を整える
こちらはサーバー必須となっています。
サーバーを立てるか、借りるかして確保してください。
Indexの作成
今回はphpで作成するので、
index.php
を作成し、以下を貼り付けてください。
<!DOCTYPE html> <html lang="ja" dir="ltr"> <head> <meta charset="utf-8"> <title>uploader</title> </head> <?php ?> <body> </body> </html>
ファイルを選択できるようにしたい
postのfrom作ります。
<form action="index.php" method="post" enctype="multipart/form-data"> <input type="file" name="up" accept="image/*"> <input type="submit" name="sb"> </form>
これでおそらく画像が選択できるようになったと思います。
次にこれを受け取る処理を書きます。
ファイルをサーバーにアップロードする
とりあえず日時を取得します。
if (isset($_POST['sb'])) { $date = date("Ymdwhms"); }
ファイルの名前はその時の日時で行きたいと思います。
これはsubmitが押されたら日時を取得するというものです。
サーバーに何かをアップロードするときは、
move_uploaded_file()
を使います。
これをこう記述するとサーバーにpngがあると思います。
if(!empty($_FILES)){ $uploaded_path = './'.$date.'.png'; $result = move_uploaded_file($_FILES['up']['tmp_name'],$uploaded_path); }
画像が選択されていたら、ファイル名を日時にして端子をpngにするというものです。
これだと強制的にpngになってしまうのであまりよくありませんが今回は割愛します。
URLを付与したい
アップロードした画像は今どこにいるのでしょうか。
○○○.com/ここ
ですよね。
つまり、自分のウェブサイトのドメインの後に日時.pngをくっつけてやります。
if(!empty($_FILES)){ $uploaded_path = './'.$date.'.png'; $result = move_uploaded_file($_FILES['up']['tmp_name'],$uploaded_path); echo "https://○○○.com/".$date.".png"; }
○○○.comのところはご自身のドメインに変えてください。
これで画像をアップロードすると、URLがもらえたと思います。
最後に
今回は以上となります。
結構短くできました。
注意点
サーバーによっては、このようにアップロードするのを禁じている場合があります。
ご確認下さい。
個人情報やポルノなどアップロードされると最悪罰せられます。
今回のソースコードはあくまで練習としてお使いください。
サンプルコード
<!DOCTYPE html> <html lang="ja" dir="ltr"> <head> <meta charset="utf-8"> <title>uploader</title> </head> <?php if (isset($_POST['sb'])) { $date = date("Ymdwhms"); } if(!empty($_FILES)){ $uploaded_path = './'.$date.'.png'; $result = move_uploaded_file($_FILES['up']['tmp_name'],$uploaded_path); echo "https://○○○.com/".$date.".png"; } ?> <body> <form action="index.php" method="post" enctype="multipart/form-data"> <input type="file" name="up" accept="image/*"> <input type="submit" name="sb"> </form> </body> </html>