Image Response – jak na to?

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

Snažím se vrátit si z presenteru obrázek, zkoušel jsem přes FileResponse ale to skončí downloadem obrázku a ještě ke všemu to je nějaký poškozený soubor. Našel jsem na fóru několik let stará řešení, která už ani třeba nefungují a ani jedno dle diskuze nebylo úplně ono tak se ptám kde je po takové době ImageResponse nebo jak tedy mám poslat obrázek na výstup.

Editoval Zdeněk Topič (12. 1. 2013 18:16)

Zdeněk Topič
Člen | 14
+
0
-

Dobrá a jak ten obrázek načtu? mám to uložené v jiných příponách a nnejde mě tam dostat žádným rozumným způsobem formát.

Respektive co má být druhý parametr u Image::fromFile(), první je cesta k souboru která je pojmenován neco.file. Z databáze vím, že původní název je neco.jpg a chci ho takto také odeslat do prohlížeče. Tedy jak na to. $image->send() mě asi v outputu ten soubor nepojmenuje jako byl původně.

Editoval Zdeněk Topič (12. 1. 2013 19:15)

vvoody
Člen | 910
+
0
-

Pomenovanie outputu? Aké pomenovanie? Kde? Url? Veď v prvom poste si písal že download nechceš.

Zdeněk Topič
Člen | 14
+
0
-

Ano, ale v jiném presenteru budu chtít a proto se ptám dopředu :) Jestli existuje nějaké řešení, které pokryje obě možnosti

Zdeněk Topič
Člen | 14
+
0
-

Díky. Stejně to ale nefunguje. Nevím co teda už dělám špatně. Soubor uploaduju jako PNG. V Nette ho zmenším a uložím v JPEG s 80% kvalitou. Uložím si údaj do db. Uložím soubor jako např. „23.file“. Následně ho chci nechat zobrazit následujícím kódem:

	public function actionPicture($username)
	{
		$user = $this->model->users->findOneBy(array("username" => $username));
		$response = new ImageResponse($user->image->path);
		$this->sendResponse($response);
	}

Po obrázku ani vidno, Nette nehlásí žádnou chybu, ale obrázku prostě není. Adresa pro zobrazení obrázku je ve tvaru „/user/picture/<username>“. Zobrazí se prázdno s přeškrknutým obrázkem/stránkou.

Prosím o radu nebo si řekněte co potřebujete vědět.

Zdeněk Topič
Člen | 14
+
0
-

Uložení obrázku je provedeno následovně:

$img->save(WWW_DIR . '/files/uploads/' . $file->id . '.file', 80, \Nette\Image::JPEG);

Pokud daný .file stáhnu z FTP, přejmenuju na .jpg tak není problém ho otevřít a obrázek se zobrazí.