Я пытаюсь загрузить изображения в папку. здесь мне нужно загрузить только изображения типа .JPEG|.jpeg|GIF|.gif|.PNG|.png|bmp|.BMP

Какое выражение мы должны написать здесь, чтобы когда-либо пользователь пытался загрузить свои файлы, а не это

Любое решение было бы здорово, спасибо

0
happysmile 3 Ноя 2009 в 06:14

2 ответа

Вообще это плохая идея, но...

/(jpg|gif|bmp|png)$/

Запустите выражение на любом языке, который вы используете, и убедитесь, что оно нечувствительно к регистру.

Я говорю, что это плохая идея, потому что вам лучше проверить фактические данные в файле после того, как произойдет загрузка. Я могу переименовать файл во что угодно и загрузить его на ваш сайт.

ETA: косая черта может быть необязательной на вашем языке.

4
Langdon 3 Ноя 2009 в 06:19
+1 за указание на дыру, достаточно большую, чтобы через нее проехал грузовик :-) И я также видел файлы .jpeg, хотите ли вы их скрыть, это вопрос вкуса - я бы предпочел вообще отказаться от проверки имени файла как вы предлагаете.
 – 
paxdiablo
3 Ноя 2009 в 06:29

Я думаю, это должно работать с:

\w*.(jpg|jpeg|gif|png|bmp)$ Используя это, вам нужно использовать IgnoreCase в asp.net.

\w — это все буквенно-цифровые символы, за которыми следует точка (экранированная, поскольку это специальный символ). Затем одно из ваших расширений.

Но помните: файлы идентифицируются не по расширению, а по содержанию. Возможно, вы сможете использовать что-то похожее на утилиту linux «file» для определения типа файла. Я не знаю, существует ли что-то подобное для asp.net.

1
data 3 Ноя 2009 в 06:26