Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Загрузка файла только с определённым расширением [2]

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): « 1 [2]   

> Без описания
EuGen Администратор
Отправлено: 23 Ноября, 2012 - 12:17:13
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Увидел много интересных и - наверное - экзотических решений старой как мир задачи определения расширения файла на php, классически решаемой как


Внутри каталога с загружаемыми файлами, разумеется, не должны быть включены флаги исполнения php/чего бы то ни было, а сам каталог по возможности не должен быть доступен через веб (или, если уж нельзя без этого, его листинг должен быть запрещен)


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
anton-logom
Отправлено: 23 Ноября, 2012 - 13:07:56
Post Id



Новичок


Покинул форум
Сообщений всего: 34
Дата рег-ции: Нояб. 2012  


Помог: 0 раз(а)




Всем спасибо за ответы!
Сейчас попробую.
Загружать планирую не картинки, просто скрипт копировал и переделывал, а названия переменных менять не стал.
О результатах сообщю. Радость
 
 Top
KingStar
Отправлено: 23 Ноября, 2012 - 13:42:55
Post Id



Участник


Покинул форум
Сообщений всего: 1889
Дата рег-ции: Авг. 2011  
Откуда: Беларусь


Помог: 69 раз(а)




snikers987 пишет:
php_flag engine off


помимо php есть еще куча исполняемых файлов


-----
То что программа работает, не означает что она написана правильно!
 
 Top
anton-logom
Отправлено: 23 Ноября, 2012 - 14:30:51
Post Id



Новичок


Покинул форум
Сообщений всего: 34
Дата рег-ции: Нояб. 2012  


Помог: 0 раз(а)




KingStar пишет:
Самое простое, что можно - это

$array = array('rar', 'zip');
$name = explode(".", $_FILES['image_file']['name']);
$exp = end($name);
if(in_array($exp, $array))
{
echo "Загружаем";
}
else
{
echo "Неверное расширение файла";
}


Так не получается:
PHP:
скопировать код в буфер обмена
  1. PHP Parse error:  syntax error, unexpected $end in /home/***/uploadfile.php on line 93


Весь прикол в том что в скрипте всего 93 строки, а переменная $end нигде не используется... Растерялся
 
 Top
Мелкий Супермодератор
Отправлено: 23 Ноября, 2012 - 14:35:06
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




$end в случае parse error - зарезервированное слово, означает }
Пропущена }, на последнюю строку указывает, т.к. файл кончился на этой строке, а скобки нету.
(Добавление)
Или ; означает, а я путаю по памяти.


-----
PostgreSQL DBA
 
 Top
anton-logom
Отправлено: 23 Ноября, 2012 - 14:37:05
Post Id



Новичок


Покинул форум
Сообщений всего: 34
Дата рег-ции: Нояб. 2012  


Помог: 0 раз(а)




Мелкий пишет:
$end в случае parse error - зарезервированное слово, означает }
Пропущена }, на последнюю строку указывает, т.к. файл кончился на этой строке, а скобки нету.


Спасибо, проверю, просто php ещё только учу.
 
 Top
3d_killer
Отправлено: 23 Ноября, 2012 - 15:03:30
Post Id



Участник


Покинул форум
Сообщений всего: 1916
Дата рег-ции: Апр. 2011  
Откуда: Ростов-на-Дону


Помог: 21 раз(а)




я так расширение определял
PHP:
скопировать код в буфер обмена
  1. $type=".".end(explode('.', $_FILES['userfile']['name']));
 
My status
 Top
anton-logom
Отправлено: 23 Ноября, 2012 - 15:07:26
Post Id



Новичок


Покинул форум
Сообщений всего: 34
Дата рег-ции: Нояб. 2012  


Помог: 0 раз(а)




3d_killer, спасибо но проблему уже решил.
Всем большое спасибо за помощь! Подмигивание
 
 Top
sahskap
Отправлено: 25 Ноября, 2012 - 18:28:44
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Нояб. 2012  


Помог: 0 раз(а)




if($_FILES['user_banner']['error'] === UPLOAD_ERR_OK)
{
//если загрузка прошла успешно
//проверяем расширение
$file_extension = pathinfo($_FILES['user_banner']['name'],PATHINFO_EXTENSION);

$valid_extensions = array('jpg', 'jpeg', 'png', 'gif', 'tif', 'bmp');
if(in_array($file_extension,$valid_extensions))
{
//проверяем размер баннера
$valid_file_size_banner = 5000000;
$user_banner_size = $_FILES['user_banner']['size'];
ну там уже пощло дальше проверка и всякое такое..
 
 Top
Страниц (2): « 1 [2]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB