回答編集履歴

1

強制バリデーション

2017/01/12 07:24

投稿

maisumakun
maisumakun

スコア145184

test CHANGED
@@ -1,5 +1,5 @@
1
- PHPのコードでバリデーションを行うことは**不可能**です。POSTされたファイルのデータが`upload_max_filesize`より大きかった場合、**PHPのコードを実行する前に**ファイルは削除されてしまい、行されたコードからそれは判断できせん
1
+ POSTされたファイルのデータが`upload_max_filesize`より大きかった場合、**PHPのコードを実行する前に**ファイルは削除されてしまい、`$_FILES[フォームのname]['error']`に`UPLOAD_ERR_INI_SIZE`(1)という値を残します([PHPマニュアル](http://php.net/manual/ja/features.file-upload.errors.php))。**自分でバリデーションをわなくても、これは強制的に適用されます**
2
2
 
3
3
 
4
4
 
5
- 、このデータをフォーム側に送って、**JavaScriptで**バリデーションすること、[File API](https://developer.mozilla.org/en-US/docs/Web/API/File)の実装されたブラウザ(IE 10以降を含むモダンブラウザ)であれば可能です。`(type=fileのinputオブジェクト).files[0].size`にバイト単位の大きさが入っていますので、これをチェックすれば容量チェックはできます。
5
+ た、このデータをフォーム側に送って、**JavaScriptで**バリデーションすること、[File API](https://developer.mozilla.org/en-US/docs/Web/API/File)の実装されたブラウザ(IE 10以降を含むモダンブラウザ)であれば可能です。`(type=fileのinputオブジェクト).files[0].size`にバイト単位の大きさが入っていますので、これをチェックすれば容量チェックはできます。