php Форма загрузки файлов на PHP 

Дата публикации  Дата изменения25.01.15  КомментарииНет   Просмотры1398

Форма загрузки файлов на PHP, с необходимыми проверками.

Пример использования:

Форма:

<form action="./upload.php" method="post" enctype="multipart/form-data">
   <p>
      <label for="file">Выберите файл: </label> <input type="file" name="userfile" id="file"> <br />
      <button>Закачать файл</button>
   <p>
</form>

Обработчик формы – upload.php:

<?php
   // Конфигурация
      $allowed_filetypes = array('.jpg','.gif','.bmp','.png'); // разрешенные типы файлов
      $max_filesize = 524288; // максимальный размер файла в байтах (0.5MB).
      $upload_path = 'files/'; // папка для загрузки файлов на сервере (папка 'files').
 
   $filename = $_FILES['userfile']['name']; // получить имя файла с расширением.
   $ext = substr($filename, strpos($filename,'.'), strlen($filename)-1); // получить расширение файла.
 
   // проверить допустимость файла, если не разрешено, то вызвать функцию DIE и вывести сообщение пользователю.
   if(!in_array($ext,$allowed_filetypes))
      die('Вы пытаетесь загрузить неразрешенный тип файла.');
 
   // проверка размера файла, если превышает, то DIE и сообщение пользователю.
   if(filesize($_FILES['userfile']['tmp_name']) > $max_filesize)
      die('Вы пытаетесь загрузить слишком большой файл.');
 
   // проверка возможности загрузки в указанный каталог, если нет, то DIE и информация юзеру.
   if(!is_writable($upload_path))
      die('Вы не можете загрузить в указанную папку; смените CHMOD на 777.');
 
   // загрузка файла в указанную папку.
   if(move_uploaded_file($_FILES['userfile']['tmp_name'],$upload_path . $filename))
         echo 'Ваш файл успешно загружен, можете его посмотреть <a href="' . $upload_path . $filename . '" title="Ваш файл">здесь</a>'; // сработало.
      else
         echo 'Во время загрузки произошла ошибка. Попробуйте снова.'; // не сработало :(.
 
?>

*Стоит отметить, что по умолчанию PHP не будет обрабатывать загрузку файлов больше 2 Мб, и если требуется больше, то нужно установить соответствующий размер upload_max_filesize и post_max_size в файле php.ini.

 Источник 

 Смотреть пример -> в примере запись в папку не разрешена.

  Размер:  1,73kB | Изменен:  6.02.13 | Загрузок: 45
Бесплатные курсы

Категории,

Теги: , , , ,

Оцените материал:

Рейтинг: 8.0/10 (1)


КомментарииКомментарии:

Нет комментариев к этой статье.


Поля, обозначенные как *, обязательны.





Максимальная длина сообщения 900 символов. Осталось   символов

 

Старые →← Новые