Ukládání obrázku do nově vytvořeného adresáře

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

Zdravím, prosím o radu,
přes formulář nahraju obrázek a uložím ho do nově vytvořeného adresáře (třeba /upload14/neco.jpg) a všechno funguje. Pracuju s ním pouze přes FileUpload.

Teď jsem ale ještě potřeboval udělat náhled obrázku, takže jsem převedl $file na obrázek pomocí toImage() a chtěl ho uložit (pomocí $img->save) do /upload14/thumbs/neco.jpg a to už mě nenechá. Obrázek to načte zmenší, ale odmítá mi vytvořit adresář (píše imagejpeg(): Unable to access ) pokud ho uložím do existujícího adresáře tak to jde. FileUpload to ale zvládá bezproblémově.

Mám tedy obrázek převést zpět na soubor, nebo nějak vytvořit adresář dopředu? Nebo jsem přehlédl nějaký parametr?

pawouk
Člen | 172
+
0
-

No prostě jen předtím než uložíš ten obrázek tak vytvoř tu složku.
příklad:

$image = $file->toImage();
$path = '/var/www/mujweb/images/';
$image->save($path."original.jpg");
$image->resize(100,100);
mkdir($path.'thumbs/');
$image->save($path.'thumbs/neco.jpg');

Tedy ten image->save() by to mohl dělat automaticky jako fileupload, ale asi nedělá… což tedy mimochopdme nevím proč…

Editoval pawouk (7. 12. 2011 21:35)

Hafran
Člen | 121
+
0
-

Jasný díky. Nakonec jsem to tak udělal, spíš jsem si říkal jestli to ta funkce save neumí, jenom jsem to někde neobjevil. ;)

JakubS
Člen | 15
+
0
-

pawouk napsal(a):
image->save() by to mohl dělat automaticky jako fileupload, ale asi nedělá… což tedy mimochopdme nevím proč

Kdysi jsem posílal pull-request který to sjednocoval ale neshledal se s žádnou reakcí (ani zamítavou).