| Autor | Zpráva | ||
|---|---|---|---|
| residentcz Profil |
#1 · Zasláno: 30. 10. 2013, 09:03:38
Ahojte potřeboval bych poradit jak docílit vyrenderování html na obrázek
ukázková stránka je zde. http://www.goldoffice.cz/prezentacni-mistnosti-akcni-sety-email.php našel jsem js, ale nevím jak docílit toho aby to zůstalo uložrno na serveru jako file :-( http://jsfiddle.net/Sq7hg/42/ |
||
| buchti Profil |
#2 · Zasláno: 30. 10. 2013, 09:05:26
php umí generovat obrázky, ale ne z html
|
||
| residentcz Profil |
A jde to nějak vytáhout z toho js a následně uložit nějakým skriptem? :-(
|
||
| Rfilip Profil |
#4 · Zasláno: 30. 10. 2013, 09:46:28
V tom js fiddle mas v komentari ze si mas AJAXem poslat na server promenou data,
tu na serveru zpracujes nasledujicim kodem: <?php
$data= str_replace('data:image/png;base64,','' ,$data);
$data = base64_decode($data);
file_put_contents('img.png', $data); |
||
| residentcz Profil |
Nechcou se mi zapsat data do img
http://www.goldoffice.cz/prezentacni-mistnosti-akcni-sety-email.php obrázek je prázdný :( http://www.goldoffice.cz/images/novinky/email-pm.png Nevíte kde mám chybu ?:) PHP kód vypadá takto <?php
$data= str_replace('data:image/png;base64,','' ,$data);
$data = base64_decode($data);
file_put_contents('/usr/local/hosting/home/goldoffice.cz/web/www/images/novinky/emal-pm.png', $data);
?>Tak už to chápu kde je problém jen netuším jak to tím ajaxem dostat do proměnne pro PHP script |
||
| Rfilip Profil |
Místo toho komentáře na 38 řádku si dejte tento kod
ajax = !window.XMLHttpRequest ? !window.ActiveXObject ? null : new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
ajax.open("POST","url",true);
ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
ajax.onreadystatechange=function(){
if(ajax.readyState==4 && ajax.status==200){
document.getElementById(status).innerHTML = ajax.responseText;
}
}
ajax.send("data=" + data);<p id="status"></p>, v něm se bude zobrazovat status uložení obrázku
Místo url si dejte adresu následujícího scriptu: <?php
if(isset($_POST["data"])) {
$data= str_replace('data:image/png;base64,','' ,$_POST["data"]);
$data = base64_decode($data);
$result =file_put_contents('/usr/local/hosting/home/goldoffice.cz/web/www/images/novinky/emal-pm.png', $data);
if ($result === false){
echo "Nepodařilo se uložit obrázek";
} else {
echo "Obrázek uložen";
}
} else {
echo "Nebyly poslány data";
} |
||
| residentcz Profil |
#7 · Zasláno: 30. 10. 2013, 15:43:51
Díky moc za ochotu :)) ale pořád to nefunguje
http://www.goldoffice.cz/prezentacni-mistnosti-akcni-sety-email.php dokonce přestal fungovat ten js někde tam musí být chyba v tom ajaxu :( , ale já tam nic nevidím... |
||
| Rfilip Profil |
Omlouvám se, překlep na 51 řádku, ten má být:
ajax.send("data=" + data);
a ješte na 52 řádku document.getElementById("status").innerHTML = ajax.responseText;
|
||
| residentcz Profil |
#9 · Zasláno: 30. 10. 2013, 16:18:00 · Upravil/a: residentcz
super už to asi funguje jen je ještě problém někde v kodovaní nebo v něčem takovém, protože se nezobrazí obrázek, ale data se zapíší do souboru...
http://www.goldoffice.cz/images/novinky/email-pm.png |
||
| Rfilip Profil |
#10 · Zasláno: 30. 10. 2013, 16:57:46
Problém nalezen, mezery se v řetězci před dekodováním musí nahradit +
<?php
if(isset($_POST["data"])) {
$data= str_replace('data:image/png;base64,','' ,$_POST["data"]);
$data = str_replace(' ','+',$data);
$data = base64_decode($data);
$result =file_put_contents('/usr/local/hosting/home/goldoffice.cz/web/www/images/novinky/emal-pm.png', $data);
if ($result === false){
echo "Nepodařilo se uložit obrázek";
} else {
echo "Obrázek uložen";
}
} else {
echo "Nebyly poslány data";
} |
||
| Radek9 Profil |
Rfilip:
„ ajax.send("data=" + data);“
To spíš ajax.send("data=" + encodeURIComponent(data)); a můžeš z PHP odstranit ten čtvrtý řádek.
„Nebyly poslány data“ Češtinářský koutek. Podle jakého vzoru se skolňují data? :-) |
||
| residentcz Profil |
#12 · Zasláno: 31. 10. 2013, 08:37:12
Joooo dík jste fakt nejlepší :-) díky moc bez Vás bych tohle propojení nikdy nezvládl.
|
||
|
Časová prodleva: 13 let
|
|||
0