phpのフォームでファイルのアップロードをする1

phpでファイルをアップロードするときのやり方です。

基本的にhtmlのフォームからデータを投げて(submitして)、phpで受け取るという処理です。
同じページで処理しても構いませんが、ここでは単純化するためにindex.html→upload.phpという流れにします。
内容は最低限必要な要素。

index.html

<html>
<head>
<title>ファイルのアップロード STEP1</title>
</head>
<body>
<form action="./upload.php" method="POST" 
enctype="multipart/form-data" accept-charset="utf-8">
<input type="hidden" name="MAX_FILE_SIZE" value="10485760" />
<!--1024*1024*10 = 10MB-->
<input type="file" name="my_file" />
<input type="submit" value="ファイルの転送開始する" />
</form>
</body>
</html>

サンプル

パーツの説明

form action=””

データをアップロードするアドレスです。
ここではupload.php

form enctype=”multipart/form-data”

パートごとにデータを送りますという宣言。
これがないとfileタイプのデータを送れない。

form accept-charset=”utf-8″

文字コードの指定。
ファイル名ではまるので指定したほうが無難、というか必須。最近はほぼ全てutf-8が標準。
サーバーの環境に合わせる。

input type=”hidden” name=”MAX_FILE_SIZE” value=””

ユーザー側ブラウザにファイルのアップロードの最大サイズを指定する。
セキュリティ上は全く当てにならないが、ブラウザ側で最大サイズ以上を弾いてくれたりすることがある。
単位はバイト。

input type=”file” name=”your_file”

ファイルを選択するボタン。
複数あっても良い。

input type=”submit”

サブミットボタン。
単に「submi」というよりも、ユーザーにハッキリとアップロードすることが分かるようにした方が親切。

サーバーの設定など

基本的のどこのサーバーでも、サーバー側の設定でアップロードできるファイルサイズが決まっています。
ややこしいので別記事に。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です