昨日、ディレクトリに画像をアップロードするためのアップロードファイルのコーディングを開始しました。配列を使用して、現在使用しているポイントに到達するためのより良い方法を処理する必要があることを認識しました。
if(!empty($_FILES['image']['tmp_name'])){
$allowed_extension = array('jpg', 'jpeg', 'png', 'bmp', 'tiff', 'gif');
foreach($_FILES['image']['name'] as $key => $array_value){
$file_name = $_FILES['image']['name'][$key];
$file_size = $_FILES['image']['size'][$key];
$file_tmp = $_FILES['image']['tmp_name'][$key];
$file_extension = strtolower(end(explode('.', $file_name)));
if (in_array($file_extension, $allowed_extension) === false){
$errors[] = 'file is not accepted';
}
if ($file_size > 2097152){
$errors[] = 'maxsize: 2MB';
}
$path = "a/b/c/";
$uploadfile = $path."/".basename($_FILES['image']['name'][$key]);
if (move_uploaded_file($_FILES['image']['tmp_name'][$key], $uploadfile)){
echo "Das Bildmaterial wurde hochgeladen.";
}
}
}
問題は、受け入れられないエンディングが与えられた場合でも、常にファイルをアップロードできることです。エラーメッセージをアップロードする代わりに表示する必要があるのに、なぜアップロードが発生するのかわかりません。コードに許可された拡張機能を埋め込むことで、セキュリティを強化したいと思います。私が間違っていることを教えてくれる人がいたら、本当にありがたいです。どうもありがとう。