Добрый вечер. К сожалению в php не силен, как можно сделать проверку перед загрузкой на сервер?
Необходимо грузить только файлы:
$allowedExts = array("ssa", "srt", "ass", "txt", "sub");
Постарался взять проверку из этого
вопроса, но не смог правильно "подставить".
Мой код:
if (count($_FILES)) {
// echo '<pre>'.print_r($_FILES, TRUE).'</pre>';
$files = $_FILES['files'];
$uploads_dir = dirname($_SERVER['SCRIPT_FILENAME']).'/subs/';
foreach ($files["error"] as $key => $error) {
$name = $files["name"][$key];
if ($error == UPLOAD_ERR_OK) {
$tmp_name = $files["tmp_name"][$key];
if (move_uploaded_file($tmp_name, "$uploads_dir/$name")) {
$toWork[] = "$uploads_dir/$name";
}
} else {
echo "Файл $name - не загружен";
}
}
}
update:
Реализовал так - работает:
if (count($_FILES)) {
// echo '<pre>'.print_r($_FILES, TRUE).'</pre>';
$files = $_FILES['files'];
$uploads_dir = dirname($_SERVER['SCRIPT_FILENAME']).'/subs/';
foreach ($files["error"] as $key => $error) {
$name = $files["name"][$key];
$valid_types = array("ass", "srt", "sub", "ssa");
$ext = substr($name, 1 + strrpos($name, "."));
if (!in_array($ext, $valid_types)) {
echo '<center><p class="btn btn-danger btn-lg">Error: Invalid file type.</p></center>';
} else
if ($error == UPLOAD_ERR_OK) {
$tmp_name = $files["tmp_name"][$key];
if (move_uploaded_file($tmp_name, "$uploads_dir/$name")) {
$toWork[] = "$uploads_dir/$name";
}
} else {
echo "Файл $name - не загружен";
}
}
}
может можно лучше?