ファイルアップロード後にPHPでファイルサイズを取得する
ファイルアップロード後にPHPでファイルサイズを取得する方法を調べました。備忘録として本エントリーで紹介します。
1.利用シーン
アップロードしたファイルのサイズが一定サイズを超えている場合にエラーを返却する場合などに利用します。
サンプルも用意しました。
サンプルは取得したサイズをそのまま同じページに表示するようにしています。
2.フォームデータからファイルサイズを取得するPHPコード
まず、PHPでファイルのフォームデータを参照するには次のように記述します。
$_FILES['name属性値']['tmp_name']
「$_FILE」は、アップロードされたファイル情報が連想配列で格納される変数です。
また、「tmp_name」は、テンポラリファイル名で、アップロードされたファイルが一時的に保存されたファイルパスです。
さらに、ファイルサイズを取得するには、次のように記述します。
$filesize = filesize( $_FILES['name属性値']['tmp_name'] );
サンプルコードも掲載しておきます。
クライアント(index.html)
<form enctype="multipart/form-data" method="post" action="hoge.php" name="foo" id="foo">
<input type="file" name="bar" />
<input type="submit" value="送信" />
</form>
サーバ(hoge.php)
<?php
if ( $_FILES['bar']['tmp_name'] ) {
$filesize = filesize( $_FILES['bar']['tmp_name'] );
// チェック処理など
}
?>
「$_FILE」ではアップロードファイル名やMIMEタイプなど、他の情報も取得できますが本エントリーの目的から外れるので割愛します。
Posted by yujiro このページの先頭に戻る
- PHPでvar_dumpの情報をファイルに出力する方法
- PHPで「そのようなファイルやディレクトリはありません」というエラーになる場合の対処
- PHPで「Cannot modify header information - headers already sent by」というエラーになる場合の対処
- PHPで「Parse error: syntax error, unexpected '['」というエラーになる場合の対処
- php.iniファイルのパス・フォルダを探す方法
- PHPで「Fatal error: Maximum execution time of xx seconds exceeded」というエラーになったときの対処
- PHPのpreg_replace()で「The /e modifier is deprecated」となる場合の対処方法
- PHPで改行を削除する方法
- PHPで複数行の文字列を扱う方法
- PHPのmktime()で取得したタイムスタンプが8ヶ月前になる事象について
トラックバックURL
コメントする
greeting