Како отпремити слику и датотеку у ЦодеИгнитер (са примером)

Отпремање датотеке ЦодеИгнитер

Управљање датотекама је од суштинског значаја за већину веб апликација. Ако развијате систем за управљање садржајем, мораћете да можете да отпремате слике, Ворд документе, пдф извештаје итд. Ако радите на веб локацији за чланство, можда ћете морати да предузмете одредбе да људи поставе свој профил слике. ЦодеИгнитер -ова класа учитавања датотека олакшава нам све горе наведено.

У овом водичу ћемо погледати како користити библиотеку за отпремање датотека за учитавање датотека.

Отпремање слика у ЦодеИгнитер

Отпремање датотека у ЦодеИгнитер -у има два главна дела. Предња страна и позадина. Фронтендом управља ХТМЛ образац који користи датотеку типа уноса обрасца. На позадини, библиотека за отпремање датотека обрађује послане податке из обрасца и записује их у директоријум за отпремање.

Почнимо са обрасцем за унос.

Креирајте нови директоријум под називом датотеке у директоријуму апплицатион/виевс

Додајте следеће датотеке у апликацију/приказе/датотеке

  • уплоад_форм.пхп - овај приказ садржи ХТМЛ образац који има тип уноса датотеке и доставља изабрану датотеку серверу на обраду
  • уплоад_ресулт.пхп - овај приказ приказује резултате постављене слике, укључујући везу на коју можемо кликнути да бисмо видели резултате.

Додајте следећи код у уплоад_форм.пхп | _+_ |

ОВДЕ,

  • иф (иссет ($ еррор)) {…} проверава да ли је променљива грешке постављена. Ако је резултат тачан, кориснику се приказује грешка коју враћа библиотека за отпремање.
  • тип датотеке дозвољава кориснику да прегледа свој рачунар и изабере датотеку за отпремање.

Додајте следећи код на уплоад_ресулт.пхп | _+_ |

ОВДЕ,

  • користи сидро помагач за креирање везе до нове отпремљене датотеке у директоријуму слика. Име се преузима из метаподатака слике који се прослеђују приказу када се датотека успешно отпреми.

Хајде сада да направимо контролер који ће реаговати на наше учитавање слика

Додајте нову датотеку ИмагеУплоадЦонтроллер.пхп у апликацију/контролере

Додајте следећи код у ИмагеУплоадЦонтроллер.пхп | _+_ |

ОВДЕ,

  • класа ИмагеУплоадЦонтроллер проширује ЦИ_Цонтроллер {…} дефинише нашу класу контролера и проширује основни контролер ЦИ_Цонтроллер
  • јавна функција __цонструцт () {…} иницијализује методу родитељског конструктора и учитава урл и помоћне облике
  • индек јавне функције () {…} дефинише метод индекса који се користи за приказ обрасца за отпремање слике
  • сторе фунцтион публиц () {…} дефинише метод који ће отпремити слику и сачувати је на серверу веб апликација.
    • $ цонфиг ['уплоад_патх'] = './имагес/'; поставља директоријум у који треба отпремити слике
    • $ цонфиг ['алловед_типес'] = 'гиф | јпг | пнг'; дефинише прихватљиве наставке датотека. Ово је важно из безбедносних разлога. Дозвољени типови осигуравају да се учитавају само слике и да се други типови датотека, попут пхп -а, не могу учитати јер имају потенцијал да угрозе сервер.
    • $ цонфиг ['мак_сизе'] = 2000; подесите максималну величину датотеке у килобајтима. У нашем примеру, максимална датотека која се може поставити је 2.000 КБ близу 2 МБ. Ако корисник покуша да отпреми датотеку већу од 2.000 КБ, слика неће успети да се отпреми и библиотека ће вратити поруку о грешци.
    • $ цонфиг ['мак_видтх'] = 1500; поставља максималну ширину слике која је у нашем случају 1.500 пк. Било која ширина већа од тога доводи до грешке
    • $ цонфиг ['мак_хеигхт'] = 1500; дефинише највећу прихватљиву висину.
    • $ тхис-> лоад-> либрари ('уплоад', $ цонфиг); учитава библиотеку за отпремање и иницијализује је са низом $ цонфиг који смо горе дефинисали.
    • ако (! $ тхис-> уплоад-> до_уплоад ('профиле_имаге')) {…} покуша да отпреми послату слику која се у нашем случају назива профиле_имаге
    • $ еррор = арраи ('еррор' => $ тхис-> уплоад-> дисплаи_еррорс ()); поставља поруку о грешци ако отпремање не успе
    • $ тхис-> лоад-> виев ('филес/уплоад_форм', $ еррор); учитава образац за отпремање датотеке и приказује поруку о грешци која се враћа из библиотеке за отпремање
    • $ дата = арраи ('имаге_метадата' => $ тхис-> уплоад-> дата ()); поставља метаподатке о слици ако је отпремање било успешно
    • $ тхис-> лоад-> виев ('филес/уплоад_ресулт', $ дата); учитава успешно отпремљени приказ и прослеђује метаподатке о отпремљеној датотеци.

То је то за контролер. Хајде сада да направимо директоријум у који ће наше слике бити постављене. Креирајте нови директоријум „слике“ у коренском директоријуму ваше апликације

Коначно, ми ћемо огласити две руте у нашој датотеци роутес.пхп која ће приказати форму и приказати резултате | _+_ |

ОВДЕ,

  • $ роуте ['уплоад-имаге'] = 'имагеуплоадцонтроллер'; дефинише УРЛ уплоад-слику која позива методу индекса ИмагеУплоадЦонтроллер-а
  • $ роуте ['сторе-имаге'] = 'имагеуплоадцонтроллер/сторе'; дефинише УРЛ продавницу-слику која прихвата изабрану корисничку датотеку и поставља је на сервер.

Тестирање апликације

Покренимо уграђени ПХП сервер

Отворите терминал/ командну линију и потражите корен апликације. У мом случају, корен се налази у диску Ц: Ситес ци-апп | _+_ |

покрените сервер помоћу следеће наредбе | _+_ |

Учитајте следећу УРЛ адресу у свој веб прегледач

хттп: // лоцалхост: 3000/уплоад-имаге

моћи ћете да видите следеће резултате

Кликните на одабери датотеку

Требало би да видите прозор за дијалог сличан следећем

Одаберите жељену слику, а затим кликните на дугме Отвори

Изабрани назив датотеке ће се појавити у отпремљеном обрасцу као што је приказано на горњој слици. Кликните на дугме за отпремање слике

Добићете следеће резултате под претпоставком да је све у реду

Кликните на Прикажи моју слику! Линк

Требало би да видите слику коју сте поставили. Резултати ће бити слични следећим

Обратите пажњу на то да је постављена слика приказана у УРЛ адреси. Име слике смо добили из отпремљених метаподатака слике

Напомена: Процес отпремања датотека остаје исти за остале врсте датотека