[HTML] Как ограничить загрузку файлов по типам?

AMK119361

Нужно, чтобы сервер не допускал загрузки файлов, типы которых не указаны в свойстве ACCEPT (как например у нас в форуме загрузка картинок). Есть ли встроенные методы, или это надо запрограммировать?

korol41

а с помощью чего на сервере происходит загрузка файлов? PHP?
тогда просто можно фильтровать файлы неразрешенных типов с помощью значения $_FILES['file']['type']

AMK119361

А можно подробнее?

AMK119361

Усё! Разобрался.

korol41

ну просто руками указать, какие типы файлов ты разрешаешь загружать
типа если ты к примеру разрешаешь загружать только .txt и .jpeg-файлы, то надо написать так:

$file = $_FILES["file"]["tmp_name"];
$file_name = $_FILES["file"]["name"];
$uploaddir = <Директория, куда надо записать загруженный файл>
$file_type = $_FILES["file"]["type"];
if($file_type == "text/plain" || $file_type == "image/pjpeg") {
if(move_uploaded_file($file, $uploaddir.$file_name {
echo "File successfully uploaded.";
}
} else { echo "Error."; }

stalker33rus10

только плохо то, что все равно файл-то на сервак в тмп идет, просто его потом выбрасываешь.

mr82

Да, действительно плохо. А кто-нибудь знает как с этим бороться?
Мб JavaSrcipt что-нибудь умеет?

artimon

Можно на JS проверить расширение файла.
Но если юзеру сильно надо, он файл переименует.

AMK119361

Но если юзеру сильно надо, он файл переименует

А это уже не всегда имеет значение. Смотря, зачем этот файл будет в дальнейшем использоваться.

stalker33rus10

Ну да, но это не спасет.
Насколько я знаю, JS тип файлов определять не умеет, так что...

artimon

Ну проверка на сервере всё равно должна быть
Насколько я знаю, JS тип файлов определять не умеет, так что...
Еще бы. Всё что JS может получить это имя файла. А по одному имени определять тип никто не умеет.

stalker33rus10

ага, лучше бы оно умело тип файлов определять (на локальной машине все таки а то у него много всяких интересных особенностей.
Оставить комментарий
Имя или ник:
Комментарий: