{% else-1 %}
Обновить | Подписаться | Поднять тему
Чтобы выполнить действие авторизируйтесь или пройдите регистрацию на сайте.
1.
khujand * [мошенник]
[автор] (2 мар 2016, 04:43) [0/0] [0] [отв] [спам] [под] +1 | -1

Привет всем. Я хочу установить на форм загрузить только разрешенных файлов. Почему такой код не получается?
<?PHP
if(isset($_POST['upload'])){
//Список разрешенных файлов
$whitelist = array(".gif", ".jpeg",".jpg",".mp3", ".png"*;

//Проверяем разрешение файла
foreach ($whitelist as $item) {
if(preg_match("/$item$/i",$_FILES['userfile']['name'])){
die('Упс ошибка, неверный формат'
} ?>

Если вставить такой код вот так: <?php if(isset($_POST['upload'])){
//Список разрешенных файлов
$blacklist = array(".php", ".html",".exe",".bin", ".sh"*;

//Проверяем разрешение файла
foreach ($blacklist as $item) {
if(preg_match("/$item$/i",$_FILES['userfile']['name'])){
die('Упс ошибка, неверный формат'
} ?>
все работает ОК. НО список запрещенных много поэтому хочу установить , загрузить только белый список форматов. Помогите плиз!


Изм. 2 раз. / Посл. изм.
khujand * [мошенник]
(2 мар 2016, 04:44)
2. (2 мар 2016, 04:57) [0/0] [0] [отв] [спам] [под] +1 | -1

<?php
//разрешенные форматы
$filetype = array(
'jpg',
'gif',
'png',
'jpeg');

$upfiletype = substr($_FILES['userfile']['name'], strrpos($_FILES['userfile']['name'], "."* + 1);

if (!in_array($upfiletype, $filetype))
die('Такой формат запрещено загружать!');

?>


Изм. 1 раз. / Посл. изм. (2 мар 2016, 04:57)
3.
Anvar * 3.33
(2 мар 2016, 04:58) [0/0] [0] [отв] [спам] [под] +1 | -1

Расширение можно изменить и успешно залить исполняемый файл вместо картинки. Зачем такая защита нужна?

4. (2 мар 2016, 05:18) [0/0] [0] [отв] [спам] [под] +1 | -1

Используй getimagesize

Если файл действительно в формате GIF, JPEG, JPG, PNG, и getimagesize возвращает его пропорции, то, значит, это настоящий файл в формате GIF, JPEG, JPG, PNG.

5.
NTL * 18.08
(2 мар 2016, 05:30) [0/0] [0] [отв] [спам] [под] +1 | -1

khujand, Кинул тебе в личку готовый вариант

  • 1 из 1
Чтобы писать сообщения авторизируйтесь или пройдите регистрацию на сайте.
Подписаны: 1
Скачать тему | Файлы темы | Фильтр сообщений