Zdravim,
prosim nevi nekdo jak ulozit soubor (jpg) ze vzdaleneho serveru do promenne
a potom ho ulozit na vlastni server. Zde je mych nekolik pokusu, ktere
nefunguji ...
// verze 1, soubor vytvarim skriptem
function zmensi($puvodni) {
$name = "http://hajsl.wz.cz/savex.php?obrazek=$puvodni";
$xr = fopen($name, "rb");
$xw = fopen("./fotky/upload/x_$puvodni","wb");
$nahledka = fread ($xr, filesize ($name));
$hotovo = fwrite($xw,$nahledka);
fclose($xw);
fclose($xr);
if ($hotovo) return true;
}
vzdaleny skript
$obrazek = urldecode($obrazek);
$im = imagecreatefromjpeg("http://placenyweb.cz/fotky/upload/$obrazek");
$w = ImageSX($im);
$h = ImageSY($im);
if ($h > $w) {
if ($h > 150) {
$new_h = 150;
$new_w = $w / $h * $new_h;
}
else {
$new_h = $h;
$new_w = $w;
}
} else {
if ($w > 150) {
$new_w = 150;
$new_h = $h / $w * $new_w;
}
else {
$new_h = $h;
$new_w = $w;
}
}
$cil = ImageCreateTrueColor($new_w,$new_h);
ImageCopyResized($cil,$im,0,0,0,0,$new_w,$new_h,$w,$h);
Header("Content-type: image/pjpeg");
ImageJpeg($cil);
ImageDestroy($im);
ImageDestroy($cil);
// verze 2, soubor uspesne vytvorim na vzdalenem serveru, pokousim stahnout
....
ImageJpeg($cil,"./nahledy/x_$obrazek");
ImageDestroy($im);
ImageDestroy($cil);
a funkce ....
function zmensi($puvodni) {
echo "
<script language=\"JavaScript\">
setTimeout(\"nahl =
window.open('http://hajsl.wz.cz/savex.php?obrazek=$puvodni','nahledovka','wi
dth=10,height=10,resizeable=no')\",5000);
setTimeout(\"nahl.close()\",10000);
</script>
";
flush();
sleep(10);
flush();
sleep(10);
$ftp_server = "ftp.hajsl.wz.cz";
$ftp_user = "...";
$ftp_pass = "...";
$conn = ftp_connect($ftp_server);
if (@ftp_login($conn, $ftp_user, $ftp_pass)) {
ftp_chdir($conn, "nahledy");
$hotovo =
ftp_get($conn,"./fotky/upload/x_$puvodni","x_$puvodni",FTP_BINARY);
ftp_delete($conn,"x_$puvodni");
ftp_close($conn);
}
if ($hotovo) return true;
}
tady se snazim nejdrive uploadovat cely soubor, pak otevrit okno, pockat na
to az se vytvori nahled na vzdalenem serveru a pak ho stahnout pomoci ftp,
jenze, nejak se mi nedari to zpozdeni, i kdyz pouzivam fci flush() a
sleep(), tak se skript vykona cely najednou, to znamena soucasne se otevre
okno, ktere vola vzdaleny skript, ale zaroven se pokousi soubor ze
vzdaleneho serveru ihned stahnout, takze samozrejme dojde k chybe ...
poznamka: to vse tak slozite, protoze na placenem serveru, kde stanky bezi,
neni k dipozici GD 2.0, kterou vytvarim "truecolor" nahledy fotografii.
No já tam nic co by nemělo fungovat nevidím, ale já na tohle nejsem odborník, jenom jsem ti chtěl říct, že když už používáš tu GD 2, tak si dej místo ImageCopyResized(), raději ImageCopyResampled(). Výsledek je pak lepší. Snad ti někdo poradí i s tím zbytkem...
Zdravim,
takze na staci obycejna funce copy, bohuzel stejne na ostrem webu to nejede, ale kdyz to zkousim mezi dvema ucty na wz (neni to spojovani uctu, jsem jen webmaster), tak to v pohode funguje ...
nevi nekdo, jaka direktiva to v php.ini muze byt, nic me nenapada allow_url_fopen to neni, taj i na ostem webu povolena, nebo ze by nekde v httpd.conf, ale to asi ne ...
Diky za pomoc
jestlize na placenem serveru neni gd/2.0+, tak je to mozna spise duvod ke zmene providera/jeho dokopani k upgradu nez k vyuzivani freewebu. ja bejt mira tak uz jsi smazanej.
<HTML>nacteni obrazku:
$f = fopen("http://www.adresa.cz/soubor.jpg", "rb");
$soubor = fread($f, 100000000);
fclose($f);
pak uz si s tim obrazkem muzes delat co chces.. v promenne ho mas :)</HTML>
/sbin/iptables -a OUTPUT --destination `resolv www.adresa.cz` --dport 80 -j DROP
- pripadne neco takoveho, pisu to z hlavy - a v promene mas kulove ;-)
2 JKT - slíbil, že server upgraduje, ale zatím nemá odpovídající hardware, snad to Míra měsíc vydrží.
2 Master - to jsem zkoušel, je fakt, že jako druhy parametr jsem použíl
filesize("http://obrazek"), a hlásilo to NEEXISTENCI souboru, tak nevím.
<HTML>s tim uz tu myslim problem nekdo mel... zadej tu velikost natvrdo stejne jde o maximalku, takze kdyz bude soubor mit jen polovinu zadanych bytu natahne se samozrejme tez</HTML>
Díky moc, z tou pevnou délkou souboru si měl recht, funguje to, moooc díky !