клас upload

Продовжуємо знайомство з класами фреймворка Codeigniter 2.1.0. І в цьому уроці навчимося завантажувати файли на сервер.
Будемо завантажувати зображення, виставляти різні настройки і записувати в базу даних назву завантаженого зображення. У цьому нам допоможе классUpload.







Виставляйте якість 480р.

Якщо Ви хочете вивчити весь фреймворк CodeIgniter і створювати потужні і функціональні сайти - Вам сюди.

У минулому уроці ми створювали посторінкову навігацію на сайті і якщо Ви не знаєте як це робити, то пройдіть даний урок 😉

Д ля початку нам потрібен вид в якому буде знаходиться форма для завантаження файлів. Далі нам потрібно в контролері написати нову функцію і при відправці форми, тобто при завантаженні файлу, ця функція і буде робити всі дії.

Новий вид (наприклад upload_view):

Action для форми пропишемо трохи пізніше. Важливо не забути прописати для форми enctype = »multipart / form-data» - це потрібно для завантаження файлів на сервер. Так само важливо для поля з типом file надати ім'я (name) саме userfile.
Далі йдемо в контролер, у мене це буде контролер first. Створюємо там нову функцію, скажімо, upload_photo. Завантажимо в цій функції наш вид з формою.

Для правильної роботи, пропишемо в контролері умова - якщо людина натиснула кнопку завантаження файлу, то тільки тоді завантажувати файл на сервер, якщо ж людина не натиснув кнопку завантаження файлу, то показуємо йому просто вид з формою.

Ось. Тепер давайте приступимо до завантаження файлу. Спочатку нам потрібно створити масив з настройками, завантажити бібліотекуUpload. вказавши параметром ці настройки і викликати відповідну функцію завантаження.

Папка img зберігається в корені сайту і всередині неї створена папка photos. Тобто створюйте папку для зображень там де у Вас папка application, system. там же створюйте папки для CSS і Java скриптів, тобто на одному рівні.







Перераховувати дозволені формати можете через |. максимальна вага файлу вказано в КБ. Заміна прогалин в назві файлів на нижнє підкреслення - рекомендую завжди залишати, так безпечніше. Так, і перейменування файлів теж завжди ставте в TRUE - корисна штука. Так само є ще різні настройки, подивитися можете тут.
Якщо все зроблено правильно, то в принципі все готово, залишилося прописати action для нашої форми.
Пишемо так:

У action вказуємо контролер і його функцію, яка буде, власне, завантажувати файли на сервер. У моєму випадку це контролер first і його функція upload_photo.

Ваш base_url прописаний у файлі, який знаходиться в папці application-> config і файл config.php. найперша настройка.
Щоб користуватися цією функцією (base_url ();) Вам потрібно завантажити хелпер URL.

Заходимо в папку application-> config і відкриваємо файл autoload.php і там шукаємо такий рядок і пишемо так:

От і все. Пробуйте завантажити що-небудь.
Тепер ще не менш цікавий момент. Напевно при завантаженні файлу потрібно занести його назву в БД для подальшого виведення на екрані. Наприклад, у Вас є таблиця photos з 2 полями id і img. І ось в поле img потрібно записати назву завантаженого файлу. Як же це зробити? Все дуже просто.

Робимо такі зміни в контролері:

Ну ось і готово. функція - this-> upload-> data (); - повертає інформацію про завантаженому файлі у вигляді масиву. Елементи цього масиву можете знайти в документації майже в самому низу. У масив add заносимо ім'я завантаженого файлу, взяте з масиву з інформацією, ну а далі занесення в базу.

Сподіваюся у Вас вийшло

Якщо урок Вам був корисний, натисніть на будь-яку кнопку нижче-буду вдячний Всім удачі і стежте за ходом подій

Так, виправлю.
І щодо класу інпут я знаю, просто якщо цього немає в даному уроці, це не означає що я про це не розповідаю.
Програма повного курсу була зроблена у вигляді поетапного навчання, щоб не звалювати все відразу в купу.

Прибирання прогалин з назви файлів - рекомендую завжди залишати, так безпечніше. Так, і перейменування файлів теж завжди ставте в TRUE - корисна штука. Так само є ще різні настройки, подивитися можете тут.

If set to TRUE, any spaces in the file name will be converted to underscores. This is recommended.







Схожі статті