Nelze najít soubor obrázku stitek_Z_1.png

Karel Chramosil
Člen | 98
+
0
-

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 | 23
+
0
-

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 | 98
+
0
-

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 | 1088
+
+7
-

__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 | 98
+
0
-

Nějak to nejsem schopen dát dohromady, ale přesto děkuji.

Karel Chramosil

Infanticide0
Člen | 5
+
0
-

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.

Karel Chramosil
Člen | 98
+
0
-

Děkuji.

Karel Chramosil