Diskuze: Upload obrázku v továrničke na formulár

Tvůrce

Zobrazeno 5 zpráv z 5.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
Ahoj, ten kód se mi takhle po prvním rychlém zhlédnutí jeví v pořádku
a pokud ta chyba naskočila až po přidání upload pole do formuláře, tak to
podle mě s kontextem vůbec nesouvisí.
Když člověk vyhledá onu chybu, najde její pravděpodobný původ, což bude nejspíše i Tvůj případ:
Nette od 2.2 závisí pro detekování typu uploadovaných souborů na rozšíření Fileinfo. To je od 5.3 součástí PHP, asi ho tedy jenom nemáš povolené.
Tady je pak oficiální návod na instalaci daného rozšíření - http://php.net/…allation.php
Doporučuji tedy použít to první, zde uvedené řešení, společně s
instalací i povolením daného rozšíření a potom dej když tak vědět, jak
jsi dopadl.
Ještě jedna věc mě k tomu napadá. Pokud jsi chceš ověřit, že Tvoje
instalace serveru a PHP splňuje všechny požadavky Nette, existuje na to
takový hezký nástroj Nette Framework Requirements Checker -
https://doc.nette.org/…requirements.
Ten právě kontroluje i přítomnost výše uvedeného rozšíření.
P.S.: Pokud používáš starší verzi Nette než je aktuální
2.4, potřebuješ i tenhle nástroj pro příslušnou verzi
Nette.
Ďakujem chyba bola presne tam kde si písal. Len si stále neviem poradiť s
DI na context keď to nechám tak ako je prvý kód ktorý som zverejnil hore
chyba:
Undefined property:
App\Modules\AdminModule\Forms\SectionFormFactory::$context
Ak pridám závislosť cez konštruktor na use Nette\Http\Context; chybová hláška Service http.context is deprecated.
Nevieš kde by som mal hľadať chybu ?
Ta první chyba je jasná, protože ten $context z hlediska té
tovární třídy není definovaný.
Když si ho potom chceš korektně předat pomocí DI, nastává druhá
chyba, protože v nové verzi Nette je již třída
Nette\Http\Context označená jako deprecated.
Když se tedy podívám, na co konkrétně ji potřebuješ a jaké je
odpovídající alternativní řešení, protože deprecated věci
rozhodně používat nechceme, zjišťuji, že ji vlastně využíváš dosti
špatně... Takhle by se určitě cesta k www/ adresáři získávat
neměla a v souvislosti s konkrétním použitím na ukládání obrázků Tě
asi už jenom odkáži sem - https://forum.nette.org/…-nebo-appdir#….
Zkrátka, udělej si na to vlastní, nejlépe model pro práci přímo s
obrázky, který cestu k www/ adresáři dostává rovnou z
konfigurace. Potom tenhle model mimo jiné můžeš, pokud bude dobře napsaný,
použít univerzálně na více místech aplikace. Také, pokud zkontroluješ,
že soubor je v pořádku a je to obrázek, můžeš ho rovnou zkonvertovat do
třídy obrázku a nemusíš k tomu vůbec použít mezi-ukládání viz. https://api.nette.org/…eUpload.html#…
Zobrazeno 5 zpráv z 5.