Autor Zpráva
jey
Profil *
ahojte potrebujem dako stiahnut pomocou php scriptu obrazok z externeho servera.
mam takyto kod:
$nazov_suboru = "50.jpg";
$adr="http://terminal.sws.cz/img.asp?stiid=50";
$soubor = file_get_contents($adr);
$fp2 = FOpen ($nazov_suboru, "w");
if ($fp2):
FWrite ($fp2, $soubor);
FClose ($fp2);
endif;

ked mam obrazok v tvare napr. www.ooosa.sk/50.jpg tak ho bez problemou stiahnem ale stakouto adresou http://terminal.sws.cz/img.asp?stiid=50 sa mi to nedary.

viete mi poradit?
dik
svadla
Profil
protoze http://terminal.sws.cz/img.asp?stiid=50 neni adresa obrazku, ten bude zobrazen nekde na te strance
adresu obrazku zjistis v jeho vlastnostech, zalezi na prohlizeci
BetaCam
Profil
svadla
protoze http://terminal.sws.cz/img.asp?stiid=50 neni adresa obrazku

Vzhledem k tomu, že ten script posílá hlavičky image/jpeg tak se dá považovat tato adresa za obrázek.
jey
Profil *
no po kliknuti na ten link sa mi objavy obrazok ma to aj rozmery ale stiahnut nie a nie.
DJ Miky
Profil
Vypisuje skript třeba nějakou chybu? Když si ten načtený obsah necháš vypsat a pošleš hlavičku image/jpeg, zobrazí se ti ten obrázek nebo ne?
jey
Profil *
no mne prave nehodi ziadnu chybu a nevytvory mi ziadne subory
BetaCam
Profil
jey
no mne prave nehodi ziadnu chybu a nevytvory mi ziadne subory

tak si zapni error_reporting(E_ALL);

Spustil sem ten tvůj script u sebe na localu a obrazek se normálně stáhnul a uložil na disk.
imploder
Profil
Pokud chceš vyvolat okno pro stahování souboru, tak použij hlavičku
Content-Type: application/octet-stream


název souboru (v okně pro uložení) se dá určit takto:
Content-Disposition: attachment; filename="nazev.pripona"
BetaCam
Profil
jey

Jinak problém s tim, že se ti nedaří obrázek stahnout a uložit na tvůj server bych s velkou pravděpodobností přisuzoval tomu, že asi máš direktivu

allow_url_fopen

nastavenou na 0
jey
Profil *
no tu direktivu mam nastavenu na hodnotu ON na localhoste a tam my vypise chybu
Warning: fopen(00000050.jpg ) [function.fopen]: failed to open stream: Invalid argument in C:\wamp3\www\rss\kateg2.php on line 16

Ked to skusam na webe na jednom servery tak tam mam direktivu na: v kolonke Local Value mam OFF a v master value mam ON to su hodnoty ktore ziskavam cez phpinfo();
tam my zase hodilo chybu:
Warning: file_get_contents() [function.file-get-contents]: URL file-access is disabled in the server configuration in /domains1/do1167000/public/www_root/images/kateg2.php on line 15
jey
Profil *
no teraz som to skusal na jednom servery neviem ako tam je nastavena ta direktiva lebo mi tam nejde phpinfo ale vsetko prebehne korektne, subory vytvory len sa mi nedaju potom z ftp stiahnut. subory maju nazby a aj velkost ale stiahnut sa mi nedaju. stiahnut sa da len posledny obrazok. ja ich totizto stahujem v cykle. v subore mam nazvy obrazkou a postupne riadok po riadku prechadzam a vymienam nazvy suboru. Nechyba mi vtom subore nieco ako zavretie suboru? toho co stiahnem?
lebo vazne neviem co je tam zle? ked si ho dam stiahnut v total comandery napise mi ze Chyba pri prijmani suboru
jey
Profil *
nevie mi niekto poradit?
BetaCam
Profil
jey
fopen(00000050.jpg ) [function.fopen]: failed to open stream: Invalid argument in

Špatný počet argumentů chybí ti tam mód pro otevření souboru

Warning: file_get_contents() [function.file-get-contents]: URL file-access is disabled in the server configuration in

Tato chyba je způsobena nastavením directivy allow_url_fopen na 0 ( Off )
¨
$fp2 = FOpen ($nazov_suboru, "w"); 
if ($fp2): 
FWrite ($fp2, $soubor); 
FClose ($fp2); 
endif; 


místo tohohle kódu by se dal použít zápis

file_put_contents($nazov_souboru, $soubor);
jey
Profil *
no skusal som ono mi to tam aj stiahne subor je normalne v adresari ma nazov velkost ale neda sa to z ftp stiahnut ani otvorit. Ide otvorit a stiahnut len posledny z cyklu:

cely kod:

$subor = fopen("kod_id_obr.txt","r");

while(!feof($subor)) {
$riadok = fgets($subor);
$pole = explode(",",$riadok);

$nazov_suboru = $pole[2];
$adr="http://terminal.asew.cz/img.asp?stiid=".$pole[1];
file_put_contents($nazov_suboru, file_get_contents($adr));

echo $fp2;


};

fclose($subor);

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:

0