problém s ukladaním miniatúry

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

Ahoj, snažím sa z formuláru ukladať obrázok v plnom rozlíšení a obrázok ako miniatúru.
Pri snahe uložiť miniatúre mi ale vyskočí error.

imagejpeg(vystavy/6/img/carousel/min/458909cb3328485.84965791.jpg): failed to open stream: No such file or directory
tracy označí riadok return imagejpeg($this->image, $file, $quality);

môj kód:

    public function upravitMediaFormSucceeded($form, $values)
    {
        $values = $form->getValues();
        $file = $values->imgFull;
        $type = $values->type;

        if (!empty($values->imgFull)) {
            if ($file->isImage() and $file->isOk()) {
                $file_ext = strtolower(mb_substr($file->getSanitizedName(), strrpos($file->getSanitizedName(), ".")));
                $file_name = uniqid(rand(0, 20), TRUE) . $file_ext;
                $file->move($this->context->parameters['wwwDir'] . '/vystavy/' . $values->exhibition .'/img/' . $type . '/' . $file_name);
                $values->imgFull = 'vystavy/' . $values->exhibition . '/img/' . $type . '/' . $file_name;


                $thumb = \Nette\Utils\Image::fromFile($values->imgFull);
                if($thumb->getWidth() > $thumb->getHeight()) {
                    $thumb->resize(300, NULL);
                }
                else {
                    $thumb->resize(NULL, 300);
                }
                $values->imgMin = 'vystavy/' . $values->exhibition . '/img/' . $type . '/min/' . $file_name;
                $thumb->save($values->imgMin); /*todo NEFUNGUJE!!! */

            }
        } else {
            unset($values->imgFull);
            unset($values->imgMin);
        }


        try {
            if (is_string($values->imgFull) == false) {
                unset($values->imgFull);
                unset($values->imgMin);
            }
            $this->vystavaManager->saveMedia($values);
            $this->flashMessage('Obrázok typu "' . $values->type . '" uložený.');
            $this->redirect('Vystava:uprav', $values->exhibition);
        } catch (UniqueConstraintViolationException $ex) {
            $this->flashMessage('Obrázok s týmto ID už existuje!');
        }
    }

Ďakujem za pomoc

matopeto
Člen | 395
+
-1
-

Nebude to tym, ze adresar min nemas vytvoreny?

CZechBoY
Člen | 3608
+
0
-

U imgFull ti chybí ta část do wwwDir.

Barbarossa
Člen | 74
+
+1
-
$thumb = \Nette\Utils\Image::fromFile($values->imgFull);

Snažíš se získat soubor, který neexistuje. Zkus nahradit cestu tímto:

$values->imgFull = $this->context->parameters['wwwDir'] . '/vystavy/' . $values->exhibition . '/img/' . $type . '/' . $file_name;