Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Определение расширения
 
 автор: Belkin   (31.10.2011 в 17:12)   письмо автору
 
 

Вот код, вообще цель дефолтна - надо разрешить загрузку только файлов с определенным расширением. В мое случае это gif, jpg и txt. Пытаюсь делать это при помощи функции
pathinfo
.


<?php

   
if($_FILES["filename"]["size"] > 1024*3*1024)
   {
     echo (
"Размер файла превышает три мегабайта");
     exit;
   }
   if(
is_uploaded_file($_FILES["filename"]["tmp_name"]))
   {
     
$e = array('gif''jpg''txt');
   
     
$p pathinfo('/files/'.$_FILES["filename"]["name"]);
     if (
$p['extension'] != $e ) die('Не тот формат');
     
move_uploaded_file($_FILES["filename"]["tmp_name"], "./files/".$_FILES["filename"]["name"]);
     
   } else {
      echo(
"Ошибка загрузки файла");
   }

?>


Знаю, что возможно не правильно делаю условие..

  Ответить  
 
 автор: KPETuH   (31.10.2011 в 17:38)   письмо автору
 
   для: Belkin   (31.10.2011 в 17:12)
 

а в чем вопрос то? как или проверить правильность скрипта?

самый быстрый способ

$ext = substr(strrchr($_FILES['filename']['name'], '.'), 1);

  Ответить  
 
 автор: Belkin   (31.10.2011 в 17:40)   письмо автору
 
   для: KPETuH   (31.10.2011 в 17:38)
 

все, сделал, только так:


     $e = array('gif','jpg','txt');

     $p = pathinfo('/files/'.$_FILES["filename"]["name"]);
     if (in_array($p['extension'], $e)) {



при помощи in_array. Вроде бы работает. Такой вариант можно использовать?

  Ответить  
 
 автор: KPETuH   (31.10.2011 в 17:55)   письмо автору
 
   для: Belkin   (31.10.2011 в 17:40)
 

Помоему конструкция в вашем вариате не совсем верна


    $p = pathinfo('/files/'.$_FILES["filename"]["name"]);


уберите
 '/files/'.

  Ответить  
 
 автор: Belkin   (31.10.2011 в 18:06)   письмо автору
 
   для: KPETuH   (31.10.2011 в 17:55)
 

думал путь точно указывать )

да, действительно не нужна. Спасибо вам!

  Ответить  
 
 автор: Красная_шляпа   (31.10.2011 в 18:29)   письмо автору
 
   для: Belkin   (31.10.2011 в 17:40)
 


<?php

function get_ext($filename) {
    return 
pathinfo($filenamePATHINFO_EXTENSION);
}

//

if  (in_array(get_ext($_FILES["filename"]["name"]), array("jpg""jpeg""gif""png")))  {
    
//
}

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования