Vyřešeno — vlákno je tím uzavřené a další odpovědi do něj nepřibývají.

Otázka

ZK120057
ZK120057 Zákazník Webhosting Vyřešeno

Absolutní cesta k souboru

Dobrý den,

chci se zeptat. Když použiji v kódu PHP (příkazem nebo přímým zadáním) absolutní cestu k obrázku ve tvaru:

/data/web/virtuals/00000/virtual/www/domains/domena.cz/images/obrazek.jpg

tak se mě obrázek nezobrazí. Cesta k souboru je správná, ale obrázek nelze načíst. Prosím o radu, kde je chyba.

Děkuji, Z

0

9 odpovědí

MB313456
MB313456 Podpora

Dobrý den,

pro soubory na daném webhostingu by cesta fungovat měla, do jiných webhostingů se takto nedostanete. Na kterém webhostingu a jakým konkrétním kódem obrázek zobrazujete? Odpověď můžete poslat v soukromé zprávě.

O uživateli: VEDOS Specialista na Znalostní bázi Web: kb.vedos.cz
0
MB313456
MB313456 Podpora

Pošlete prosím konkrétní kód a soubor, kde se nachází.

O uživateli: VEDOS Specialista na Znalostní bázi Web: kb.vedos.cz
0
MB313456
MB313456 Podpora

Přeposílám odpověď technika:

/data/web/virtuals/60031/virtual/www sice vede pořád na cílovou destinaci, ale dotazuje se to hlouběji – mimo document root. Tudíž v rámci složky/složek se asi můžete klasicky odkazovat relativně a jako absolutní cestu bych bral od obsahu ve www složky, která je root /

O uživateli: VEDOS Specialista na Znalostní bázi Web: kb.vedos.cz
0
ZK288086
ZK288086 Zákazník

V php na toto existuje magická konstanta __DIR__

Ta vrací absolutní cestu až ke scriptu kde byla volána.

0
ZK120057
ZK120057 Zákazník

Dobrý den.

Problém je v tom, že nelze k img souborům využít příkazy jako dirname(__FILE__), realpath apod. využívající absolutní cestu. Nefunguje to ani v případě, když jsou soubory nahrány přímo ve složce www. Možná  jsem se někde zacyklil a dělám chybu já, ale nemohu přijít na to kde 🙁

Z.

0
MB313456
MB313456 Podpora

Obávám se, že tady už bych musel zapojit do konverzace staršího technika, ale ti jsou momentálně mimořádně vytíženi.

Téma nechám otevřené ještě minimálně 14 dní, pokud nenajde řešení nikdo z komunity, možná se mi podaří doptat u kolegů, pokud budou mít více času než teď.

O uživateli: VEDOS Specialista na Znalostní bázi Web: kb.vedos.cz
0
ZK120057
ZK120057 Zákazník

Dobře, chápu a budu rád. Ještě se vrátím k příkazu <a href="https://www.php.net/manual/en/language.constants.magic.php#constant.dir">__DIR__</a>. Ten samozřejmě funguje správně na všechno, kromě zmiňovaných rastrových souborů.

Děkuji, Z.

0
ZK288086
ZK288086 Zákazník

Nevím jaký kód php máte, ale já běžně pro dynamické načtení obrázku používám toto:

$data = file_get_contents(__DIR__ . 'cesta k obrázkům/obrazek.jpg, png, bmp');
$image = 'data:image/*;base64, ' . base64_encode($data);

výstup do html pak například takto:

<img src="<?php echo $image ?>" alt="image" style="width: 170px; height: auto;">
0
ZK120057
ZK120057 Zákazník Přijatá odpověď

Dobrý den!

Děkuji všem za snahu a ochotu vyřešit můj problém. Nakonec mě k vyřešení dovedl poslední příspěvek. Ačkoliv jsem ten kód projížděl neustále dokola, nevšiml jsem si při výpisu cesty jednoho adresáře navíc. Autorská slepota funguje dokonale.

Řešením bylo:

[apcode language=“php“]realpath(__DIR__ . '/..')[/apcode]

Ještě jednou moc děkuji a přeji krásný den, Zd.

0

Máte stejný problém?

Tohle vlákno je uzavřené a odpovídat už v něm nejde. Když vám odpověď nestačí nebo se vás týká něco jiného, položte vlastní dotaz — odkaz na tohle vlákno do něj klidně vložte.