Jak použít CZ názvy obrázků v <img> tagu a jak je získat
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- 2rec
- Člen | 40
Dobrý večer.
Nechávám nahrát uživatele na web obrázky s CZ názvy a ukládám je na server. Potom bych potřeboval udělat výpis všech doposud nahraných obrázků. Problémy jsou s CZ názvy – nezobrazují se kvůli špatnému překódování.
Presenter:
public function beforeRender() {
// used images in this page
$exploded = explode('/', $this->link('this'));
$thispage = end($exploded);
$uploadDir = WWW_DIR . "/images/upload/" . $thispage;
$this->template->pics = array();
foreach (Nette\Utils\Finder::findFiles('*.png', '*.jpg', '*.gif')->in($uploadDir) as $file) {
Nette\Diagnostics\Debugger::barDump($file);
array_push($this->template->pics, basename($file));
}
}
Latte:
{foreach $pics as $pic}
<img src="{$basePath}/images/upload/{$page->dev_name}/{$pic|noescape}" />
{$pic}
{/foreach}
Výsledek je
<img src="/develop/www/images/upload/vyrobky/Bez n�zvu.png">
Všechny soubory jsou uložené v utf-8. Co musím udělat, aby obrázky fungovaly, prosím?
- petr.pavel
- Člen | 535
Proč tam máš to noescape? Čekal bych, že Nette prožene $pic přes
urlencode
a to ty potřebuješ.