Nelze najít soubor obrázku stitek_Z_1.png
- Karel Chramosil
- Člen | 114
php 8.1
nette pro php 8.1
declare(strict_types=1);
namespace App\Presenters;
use Nette;
use Tracy\Debugger;
use Nette\Utils\Image;
use Nette\Utils\ImageColor;
final class GrafPresenter extends BasePresenter
{ .........
public function add_text($img_lokal)
{
$image = Image::fromFile('/grafika/www/images/stitek_Z_1.png');
//phpinfo();
}
Chyba: Soubor ‚/grafika/www/images/stitek_Z1.png‘ nebyl
nalezenSoubor ‚/grafika/www/images/stitek_Z1.png‘ nebyl
nalezen
Soubor existuje a v latte se příkazem:
<img src="{$basePath}/images/stitek_Z_1.png"
normálně vykreslí.
Děkuji za radu
Karel Chramosil
- kminekmatej
- Generous Backer | 38
Používáš absolutní cestu – nezačínej tu cestu lomítkem.
Zkus:
$image = Image::fromFile('./grafika/www/images/stitek_Z_1.png');
Případně pokud trváš na absolutní cestě tak ji správně vyplň – nepředpokládám že máš v kořenovém adresáři serveru přímo složku grafika
- Karel Chramosil
- Člen | 114
Dobrý den,
děkuji za odpověď. Skutečně jsem asi několikrát zadal špatnou
cestu.
Absolutní cesta, která funguje je
C:\xampp8_1\htdocs\grafika\www\images\stitek_Z1.png
Samozřejmě budu používat relativní cestu.
Zmátlo mne, že
$cssFilePath = __DIR__
najde cestu v presenteru C:\xampp8_1\htdocs\grafika\app\Presenters a nelze jednoduše bez úpravy přidat www\images\stitek_Z1.png
V každém případě problém vyřešen.
Děkuji
- Marek Bartoš
- Nette Blogger | 1281
__DIR__ je cesta k aktuánímu souboru.
Jestli chceš cestu k wwwDir, tak ideální cesta je tato:
namespace App\Example\WwwDir;
final class WwwDir
{
public function __construct(private readonly string $wwwDir) {}
public function get(): string
{
return $this->wwwDir;
}
}
services:
- App\Example\WwwDir(%wwwDir%)
Pak už můžeš jednoduše vyžádat službu WwwDir a získat z ní cestu ke složce www. O předání služby se postará autowiring.
- Karel Chramosil
- Člen | 114
Nějak to nejsem schopen dát dohromady, ale přesto děkuji.
Karel Chramosil
- Infanticide0
- Člen | 110
Přečti si článek https://blog.nette.org/…anym-sluzbam
Možná ti pomůže to pochopit, v aplikaci nechceš mít všude natvrdo napsaný cesty, chceš si je definovat na jednom místě (neon) a pak je používat přes nějakou službu, jako v článku.