Download obrazku PHP

HackForum

Download obrazku PHP#
Zdravim Vas!
Mam nasledujici jednoduchy kod, ktery stahne obrazek z ciziho serveru a ulozi ho na vlastni. Funguje skvele a jednoduse, ale narazil jsem na problem v pripade, ze chci stahnout obrazek z gumtree (u obrazku maji v URL spoustu specialnich znaku a PHP to zrejme neprekousne). Vedeli byste nekdo, jak by to slo udelat, aby to fungovalo vzdy? Dekuji!
Prikladam funkcni a "ne"funkcni ukazku

$content = file_get_contents("[link]");
//Store in the filesystem.
$fp = fopen("image.jpg", "w");
fwrite($fp, $content);
fclose($fp);


$content = file_get_contents("[link]!zEE9s3!(I!RBRR5rYeq+g~~48_80.JPG");
//Store in the filesystem.
$fp = fopen("image.jpg", "w");
fwrite($fp, $content);
fclose($fp);
(odpovědět)
Aoj | 82.27.163.*22.3.2013 6:45
re: Download obrazku PHP#
Co zkusit získaný název souboru enkódovat, aby ses zbavil speciálních znaků?

[link]


----------
Sec-Cave.cz - [link]
HellSec.cz - [link]
(odpovědět)
RubberDuck | E-mail | Website22.3.2013 9:16
re: Download obrazku PHP#
kdyby ti tam dal nekdo 1G soubor, tak stahnes 1G soubor? (kdyz neberu v potaz nastaveni limitu php).
pouzivas ty fce uplne naopak, prave pro ukladani bys mohl pouzit spis file_put_contents().

zde konkretne tomu vadi znak $ v url - dojde k automaticke expanzi promenne. urlencode snad neni protreba, u file_get_contents jsem mel problem pouze s mezerou - tu jsem prevadel natvrdo %20 , s urlencode snad tusim byly i problemy.
Pokud tam adresu obrazku davas rucne, tak escapuj $ (nechapu ze jsi na to neprisel sam, nectes chybove hlasky php ?). pokud ze souboru apod., tak by to melo byt v pohode.
(odpovědět)
ftfr | 94.113.1.*22.3.2013 11:46
re: Download obrazku PHP#
kdyz das url obrazku do jednoduchych uvozovek, neprovede se automaticka expanze, a ani pripadne escape sekvence.
(odpovědět)
ftfr | 94.113.1.*22.3.2013 11:49
re: Download obrazku PHP#
Funkci urlencode používám už dlouho a nikdy jsem s ní problém neměl a nikdy jsem nezaznamenal, že by se chovala divně.

----------
Sec-Cave.cz - [link]
HellSec.cz - [link]
(odpovědět)
RubberDuck | E-mail | Website22.3.2013 15:19
re: Download obrazku PHP#
Moc dekuji. Jednoduche uvozovky zdaji se byti nejjednodussim resenim! :) Sam bych na to v zivote neprisel!!
(odpovědět)
Aoj | 82.27.163.*22.3.2013 18:16
re: Download obrazku PHP#
Použi urlencode popripade rawurlencode, zvacsa ich nepouzivam no ked sa v url nachadza medzera tak file_get_contents ju odignoruje a posle poziadavok iba po medzeru (ak sa nemylim) ale dany encoding to vyriesi ... a inak pre ukladanie :
$subor = "image.jpg";
file_put_contents($subor, $content);
<--- je to jednoduchsie ;)
(odpovědět)
nitram147 | E-mail22.3.2013 20:34
re: Download obrazku PHP#
Diky moc za rady!Narazil jsem na novy problem:) Na serveru kod samozrejme funguje, ale kdyz ho spustim na Localhostu, tak se nic nestane (ani zadna chybova hlaska). Ted mam na mysli i tu verzi, ktera mela jinak fungovat (problem, ktery jsem mel predtim jste mi pomohli jiz uspesne vyresit). Ptam se tedy: Co je potreba mit zapnute v PHP, aby tento skript v poradku probehl?
Pouzivam EasyPHP na Windows 7 (btw zatim jediny z packu, ktery mi na Win7 funguje)
Verze PHP 5.4.6
Apache 2.4.2

Nejsem si jisty, jestli ted nemluvim uplne mimo, ale problem muze byt i ve Windows7? A to takovy, ze by napriklad nedovolili zapsat skriptu soubor na disk? Jak se pripadne da toto vyresit?

Diky moc predem za rady!
(odpovědět)
Aoj | 82.27.163.*22.3.2013 23:38
re: Download obrazku PHP#
Problem vyresen! Tak, ze jsem zapnul skoro vse, co jsem videl, urcite to tak neni spravne, ale hlavne, ze to jde. Dekuji
(odpovědět)
Aoj | 82.27.163.*23.3.2013 1:00
re: Download obrazku PHP#
Problém bol v oprávneniach ;) Neviem ako je to na "Widlach" pretože som s nimi už 2roky nepracoval ale na linuxe (konkrétne distro Ubuntu 11.04) treba nastaviť oprávnenia .... Keďže PHPpéčka sú vo /var/www/ <-- a nechce sa ti byť zbytočne prihlásený pod rootom tak si nastaviť /var/www/ alebo aj celý /var/ ako vlastníka tvoj účeť (ja mám celý var aby som mal aj prístup k logom ....) a zbytočne phppéčka nepotrebujú povolonie tak nastaviť že môžu zapisovať ostatný na priečinky v ktorým to phppéčko bude napríklad : /var/www (vlastní nitram147, povolenie nitram147, ostatný - nie) , priečinok /var/www/stiahniobrazok/ (vlastnik nitram147, povolenie - nitram147, ostatny - ano) a máš to :) Neviem ako je to s oprávneniami na windowse pretože ak viem tam boli iba SYSTEM , ADMINISTRATOR, a jednotlivy USERS :)
(odpovědět)
nitram147 | E-mail23.3.2013 10:34
re: Download obrazku PHP#
PS: To s tým prihlásený na roote bolo myslené tak že keď chceš vytvárať nové súbory respektívne skripty aby mal práva na zápis do priečinku ale nevadí keď si priamo aj vlastníkom :)
(odpovědět)
nitram147 | E-mail23.3.2013 10:37
re: Download obrazku PHP#
Pisu jen abych znovu podekoval za odpovedi!
A zjistil jsem, ze predne je treba mit zapnute allow_url_fopen nebo nejak tak.
(odpovědět)
Aoj | 82.27.163.*2.4.2013 0:54

Zpět
 
 
 

 
BBCode