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
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
- Barbarossa
- Člen | 74
$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;