- 締切済み
ファイルのアップロードで、
ファイルをアップロードさせる事に成功しましたが、 不正処理を防ぐ為、制限させたいのですが、 処理方法が分かりません。 (1) JPGファイルのみに制限する事 (2) 100KB以下に制限する事 (3) ファイルが未入力の場合、 ファイルパスが存在しない場合、 拒否する=>exitする。 (4) 0バイトなど壊れていたら、拒否する=>exitする。 どんなIF文があるでしょうか?
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- みずの(@mizuno3)
- ベストアンサー率73% (192/263)
1 #$_FILES['keyname']['type']を調べる。 if(preg_match("#^image/p?jpeg$#i",$_FILES['keyname']['type'])){ echo "JPGファイルのみアップロードが可能です"; exit; } 2 #$_FILES['keyname']['size']を調べる if($_FILES['keyname']['size'] > 102400){ echo "100KB以上のファイルは使えません。"; exit; } 3 #$_FILES['keyname']['error']を調べる if($_FILES['keyname']['error'] == 4){ echo "ファイルが未入力です。"; exit; } 4 #$_FILES['keyname']['error']を調べる if($_FILES['keyname']['error'] == 3){ echo "ファイルが正常にアップロードできませんでした。"; exit; } こんな感じでしょうか。 詳しくはPHPマニュアルのファイルアップロードの処理のページを参考にしてみてください。
補足
0バイト、未入力、100キロバイト制限は、 何とか他の方法でできましたが、 頂いた方法ではうまくいきませんでした。 JPEG形式なのかどうなのか、ファイルタイプを取り出す方法が分かればいいんですが、 $_FILES['keyname']['type'] では、 ファイル形式が取り出せないですね。 他の良く似た方法でも、 file という種類で取り出したり。 JPGでもtxtでも、file・・・って出ました。