Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Проверка загружаемых файлов (https://javascript.ru/forum/misc/79364-proverka-zagruzhaemykh-fajjlov.html)

KOKS1999 29.01.2020 00:33

Проверка загружаемых файлов
 
Здравствуйте.
1) С помощью php загружаю через multiple сразу несколько файлов.
У меня есть массив допустимых расширений. Как сделать, чтобы парсился текст после точки каждого файла и, сравнивался с каждым расширением в массиве. Например: 1.jpg, 2.png. 1 файл берем jpg и ищем совпадение с массивом, нашли ок. Берем png не нашли совпадение с массивом, форма не отправляется. То есть, если хоть 1 из 5 загружаемых файлов не соответствует формату который можно использовать, то форма не отправляется, а иначе всё ОК. ( прошу написать код, не знаю как самому написать ).
2) Что делать, если пользователь откл js в браузере?
Спасибо.:thanks:

Malleys 29.01.2020 00:52

Цитата:

Сообщение от KOKS1999
То есть, если хоть 1 из 5 загружаемых файлов не соответствует формату который можно использовать, то форма не отправляется

Вы можете указать в самой форме какие можно типы... (Тогда не будет файлов, которые нельзя использовать, их не будет в диалоге выбора файлов)

<form method="post">
    <input type="file" name="images" multiple accept="image/png,image/gif,image/jpeg" required>
    <input type="submit">
</form>


Цитата:

Сообщение от KOKS1999
Что делать, если пользователь откл js в браузере?

Ничего! Вопрос в том, зачем такое пользователям нужно! Форма выше так и так будет работать!

laimas 29.01.2020 01:09

Цитата:

Сообщение от Malleys
Тогда не будет файлов, которые нельзя использовать

К сожалению может быть если пользователь любит Safari и использует его в Widows. Тогда все что угодно.

KOKS1999, никогда не проверяйте тип файла по расширению после точки, например разрешенные image/jpeg, это и .jpg, и .jfif, и .pjpeg, и .pjp.

Malleys 29.01.2020 01:16

Цитата:

Сообщение от laimas
К сожалению может быть если пользователь любит Safari и использует его в Widows. Тогда все что угодно.

И какая там версия Safari? 13? Вы бы ещё вспомнили свой любимый IE6! Конечно же accept в старинных браузерах не работает, потому что тут идёт речь о вещах, приближённых к действительности. И тем более так и так следует проверять присланные на сервер файлы! (Проверить тип, при загрузке следить за размером (чтобы не загружали, например, 150 МБ файлы и пр.), чтобы сразу закрыть соединение не дожидаясь всей загрузки файла)

laimas 29.01.2020 01:42

Цитата:

Сообщение от Malleys
И какая там версия Safari? 13? Вы бы ещё вспомнили свой любимый IE6!

Во-первых нет у меня любимого, во-вторых маки давно забросили обновление своего детища под Win, а в третьих старья хватает и не по моей воле.

KOKS1999 29.01.2020 16:52

Просто проверка через инпут не подходит, ибо человек может загрузить скрипт. Или просто взять и загрузить любой файл. Мне ради безопасности надо

laimas 29.01.2020 17:00

Цитата:

Сообщение от KOKS1999
Или просто взять и загрузить любой файл. Мне ради безопасности надо

Это уже забота сервера, а не клиента, следить чтобы мусора не грузили.

Malleys 29.01.2020 21:38

Цитата:

Сообщение от laimas
Это уже забота сервера, а не клиента, следить чтобы мусора не грузили.

А разве я не про это написал в сообщении №4? А вы пересказываете своими словами...

Цитата:

Сообщение от laimas
Во-первых нет у меня любимого

Он самый!

Цитата:

Сообщение от laimas
во-вторых маки давно забросили обновление своего детища под Win

Также как и форточки под MacOS

Цитата:

Сообщение от KOKS1999
Просто проверка через инпут не подходит, ибо человек может загрузить скрипт. Или просто взять и загрузить любой файл. Мне ради безопасности надо

То, что я вам показал в сообщении №2 — то потрясающе справляется с своей задачей: пользователи видят те файлы, которые можно загружать. (А потом идёт обработка на сервере, как было написано в сообщении №4)

laimas 29.01.2020 21:46

Malleys, опять язык зачесался? А потом обиды, что ...


Часовой пояс GMT +3, время: 14:29.