Upload obrázku na server a zápis cesty

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
TomasHuttner
Člen | 66
+
0
-

Zdravím, řeším přidávání obrázku na server do adresáře upload který je v adresáři WWW ale obrázky se mi tam nedaří nahrát. Poradíte mi prosím kde mám chybu?

public function processAddNovinky($form)
    {
        $values = $form->getValues();
        try {

            if($values->obrazek->isOk() AND $values->obrazek->isImage())
            {
                $fileName = "obr_".Strings::webalize($values->obrazek->getName(), '.');
                $fileTarget = "/example/www/upload/" . $fileName;
                $values->obrazek->move($fileTarget);
            }
            $this->novinkyModel->AddNovinky($values, $fileTarget);
            $this->flashMessage('Novinka byla úspěšně přidána', 'success');
            $this->redirect('Nastroje:novinky');
        } catch (Exception $e) {
            throw new NovinkyException;
        }
    }
David Kudera
Člen | 455
+
0
-

Jsi si jistý, že chceš obrázek ukládat do složky examples, která je přímo v rootu systému? To totiž lomítko na začátku cesty udělá: root a pak zbytek.. Musíš si tam nastavit nějak cestu k adresáři v tom webu.

TomasHuttner
Člen | 66
+
0
-

Ne obrázek chci nahrát do složky upload která je ve složce WWW

wassy
Člen | 46
+
0
-

Není lepší použít

$fileName = $values->obrazek->getSanitizedName();

? Nebo jak má vypadat název toho obrázku?

David Kudera
Člen | 455
+
0
-

No a to je ten problém, jak jsem psal ;-)

Snažíš se to totiž uložit jinam, takže opravou bude nastavení správné cesty. Možností je dost.. Třeba ne úplně hezky přes __DIRNAME__. '/../../www/upload/'. $fileName nebo třeba líp přes konfiguraci v neonu, pokud ten form je registrovaný jako služba.

Edit: formuláře jako komponenty

Editoval David Kudera (11. 8. 2014 20:32)