Autor Zpráva
Ulet
Profil *
Dobrý den,
již nějakou dobu bez úpěchu zkouzším najít jak dostat z ftp obrázek na web
jedna z cest je <img src='ftp://$uzivatelske_jmeno:$heslo@$adresa_ftp'> má to ovšem dost zásadní nevýhodu a to že každý návštěvník stránky má v kódu jmeno a heslo.

Pomocí
$connection = ftp_connect('$adresa_ftp');
$login = ftp_login($connection, $uzivatelske_jmeno, $heslo);
se sice k ftp připojím ale jak potom danný obrázek zobrazit?
Díky
panther
Profil
Ulet:
nechápu, oč přesně jde. Je-li obrázek umístěn na serveru (a tedy dostupný na FTP), je dostupný skrze nějaké umístění na webu. Co ti brání adresovat jej nějak normálně?
Ugo
Profil
panther:
může to bát zcela jiné FTP kam navíc není anonymní přístup

Ulet:
1. stáhni ho k sobě na server - ftp_get($this->_link,$dst,$src,FTP_BINARY); , otevři a odešli se správnými hlavičkami prohlížeči (nebo rovnou vlož svuj link do src
2. mělo by to jít socketovými funkcemi, nastavit připojení přes ftp a rovnou ze serveru stáhnout skrze file_get_contents()
Ulet
Profil *
panther:
Ano je na FTP ale bohužel tam není anonimní přístup tudíž bych do adresy v src= musel napsat už. jméno i heslo což samozřejmě nechci. (viz můj první příspěvek)

Ugo:
No stáhnout ho k sobě na server je řešení ale stahovat každý se mě zdá zbytečné jde jen o jeho zobrazení mám v databázi jeho lokální adresu (třeba U:/Obrázek.png) bohužel web je na jiném serveru než tento disk U:/ (tudíž jsem z danného disku U:/ udělal FTP). Je to jediné co mě napadlo jako řešení. Mrknu ještě co umí tak funkce file_get_contents()

Díky
Ugo
Profil
jestliže je na tvém serveru kam se dostaneš, tak to nemusíš řešit přes FTP, ale řekni to PHPku rovnou ať si ho veme z disku U, apache (php) nemá oprávnění jen do rootu .. nenastaví-li se jinak samozřejmě :) ještě by bylo možnost udělat např. symlink (odkaz) na ftp adresář v místě, kam se dostaneš
Ulet
Profil *
Asi to pořád špatně vysvětluji :-)
Jsou dva servery:

První server na kterém web běží: apache, php, mysql
zde umístěné obrázky na které jsou odkazy v mysql zobrazím bez problémů, na tomto serveru je php hledá když mu zadám cestu


Druhý server kde běží: mssql, a je zde adresář s obrázky na disku U
k databázi se externě připojím a najdu tam třeba odkaz U:/obr.png tuto adresu od img napsat nemůžu protože ji hledá na serveru prvním
Ugo
Profil
ještě takové lehké řešení, kvůli IE by bylo třeba přejmenovat php->png atp.

<?php
//include('debugger.php');
//header('Content-type:image/html; charset=UTF-8');
$_GET['obr']="htdocs/test/radio.png";
header('Content-type:image/png');

echo file_get_contents('ftp://ugo:ugo@localhost:666/'.$_GET['obr']);

zobrazení pak <img src="obrazek.php?obr=test/image.png"?>
Ulet
Profil *
Super diky tohle jsem potreboval
Ulet
Profil *
Ugo:
Ještě s k tomu musím vrátit sorry ale nezadařilo se ;-)

Tohle mi sice vypíše obrázek tak jak bych si ho představoval ale už k němu nemohu na dannou stránku dát jiný obsah než obrázek dá se nějak definovat ten header jen pro ten danný file_get_contetnts?
header('Content-type:image/png');
echo file_get_contents('ftp://web:SSL3686a@77.240.182.190/Foto/FGS 50 CNC B - 120029/1.jpg');
Ugo
Profil
myslel sem to tak, že ten header a echo bude jediný kód v tom souboru, když si ho pak prohlížeč načte do obrázku, neovlivní to hlavičky celku.
Ulet
Profil *
Jo takhle díky moc super reseni ;-) uz funguje

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: