Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Wysyłanie pliku XML i odbieranie obrazka, Jak to zrobić ?
Mackos
post 25.10.2010, 19:14:57
Post #1





Grupa: Zarejestrowani
Postów: 362
Pomógł: 44
Dołączył: 10.06.2009

Ostrzeżenie: (0%)
-----


Witajcie!
Obecnie mam problem tego typu iż muszę generować i wysyłać plik XML o określonych parametrach na dany URL i w odpowiedzi mam otrzymywać obrazek .gif
O ile udało mi się znaleźć jakiś kod do wysyłania tych plików XML na serwer, tak nie mam pojęcia w jaki sposób realizować odbiór GIF'a i jego zapis na moim serwerze.

A odnośnie jakiegoś kodu to wygląda on tak:
Kod
function postFile()
{
var xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");

xmlhttp.open("POST", "http://yoursite.com/sample.xml", false);
xmlhttp.send();

alert(xmlhttp.ResponseText);
}

I mam też kilka pytań (jako że z AJAX'em u mnie ciężko).
Czy to jest w ogóle dobry kod do wysyłania 'plików'?
Dlaczego tam jest "false" zamiast "true" ?
I czy czasem modyfikacja "alert(xmlhttp.ResponseText);" nie jest częściową odpowiedzią na to czego szukam - czyli odbioru odpowiedzi od serwera ?


--------------------
WebLemon.pl - projektowanie stron www, reklama i PR w internecie - Adwords, Facebook.
Go to the top of the page
+Quote Post
erix
post 26.10.2010, 09:05:38
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
I czy czasem modyfikacja "alert(xmlhttp.ResponseText);" nie jest częściową odpowiedzią na to czego szukam - czyli odbioru odpowiedzi od serwera ?

Owszem.

A jedynym sposobem, żeby ten obrazek wyświetlić, to src="data: - powinieneś już po tym coś znaleźć. winksmiley.jpg


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
thek
post 26.10.2010, 10:46:24
Post #3





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Zależy jak otrzymujesz ten obrazek. Czy w formie ścieżki na serwerze odpytywanym, czy może dane binarne. Nie wiemy nic o formacie tych danych. Jeśli to pierwsze to masz zero problemów. Bierzesz ową ścieżkę i robisz zwyczajne pobranie zawartości fopen, file_get_contents czy inne tego typu. Jeśli to dane binarne, to najpewniej są one zakodowane jako base64 i musisz je zdekodować i zapisać na serwerze jako odpowiedni plik.


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post
erix
post 26.10.2010, 10:54:30
Post #4





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
to najpewniej są one zakodowane jako base64 i musisz je zdekodować i zapisać na serwerze jako odpowiedni plik.

I patrz teraz na mojego poprzedniego posta. winksmiley.jpg


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
Mackos
post 9.11.2010, 21:45:40
Post #5





Grupa: Zarejestrowani
Postów: 362
Pomógł: 44
Dołączył: 10.06.2009

Ostrzeżenie: (0%)
-----


Ok, wybaczcie mi ale trochę nie ogarniam tego wszystkiego...
Czyli funkcja wysyłająca i odbierająca dane ma znajdować się w pliku .php tak ?
I teraz tak w jaki sposób ja mam wysyłać tą funkcję którą wyżej podałem na ustalony adres http ?

Przyznam szczerze że wydaje się to być łatwe jednak moja niewiedza dot. AJAXa jest dość sporą barierą, wiec mam nadzieje że pomożecie mi przez to przebrnąć smile.gif

______________________________________________
EDIT:

Ok, googlowałem troche na ten temat, i naprawde jestem już zdesperowany... Nie mam pojęcia jak to zrobić!
Próbowałem już kilku tutoriali jak np. ten:
http://internetmaker.pl/artykul/3289,4,aja...e_aplikacje_www
Jednak to co próbuję osiągnąć jest ponad moje możliwości, a dokładniej chce zrobić tak:
Wysyłanie pliku XML na zdalny serwer -> Otrzymanie odpowiedzi w XML, wycięcie stamtąd kodu w wybranym znaczniku, odesłanie go z powrotem i odebranie ciągu znaków z kolejnego pliku XML.

Proszę (chyba po raz pierwszy) o wyczerpujące wskazówki ponieważ nic nie mogę znaleźć konkretnego ani żadnego rezultatu uzyskać.

Pozdrawiam!

Ten post edytował Mackos 9.11.2010, 21:46:16


--------------------
WebLemon.pl - projektowanie stron www, reklama i PR w internecie - Adwords, Facebook.
Go to the top of the page
+Quote Post
erix
post 9.11.2010, 23:54:19
Post #6





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Ale konkretniej, z czym masz problem? Tylko nie pisz, że ze wszystkim, bo takie pytania są do wyjaśnienia na poziomie kursu.

Stajesz przed jakimś zadaniem i coś na pewno Ci sprawia trudność, konkretnego.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
Mackos
post 10.11.2010, 00:24:02
Post #7





Grupa: Zarejestrowani
Postów: 362
Pomógł: 44
Dołączył: 10.06.2009

Ostrzeżenie: (0%)
-----


No więc chce drobnymi kroczkami dojść do tego wszystkiego do tego stopnia żebym mógł osiągnąć swój cel, (bo jak się wszystko robi na hura to się nic nie zrobi dobrze)
I teraz podążając za w3schools zrobiłem sobie plik XML krasnoludki.xml
  1. <?xml version="1.0" encoding="ISO-8859-1"?>
  2.  
  3. <PIOSENKA>
  4.  
  5. <TYTUL>Krasnoludki</TYTUL>
  6.  
  7. <TEKST>My jestesmy krasnoludki ...</TEKST>
  8.  
  9. <AUTOR>NIEZNANY</AUTOR>
  10.  
  11. </PIOSENKA>


I próbowałem go wmontować pod ten przykład:
http://www.w3schools.com/ajax/ajax_xmlfile.asp
No i niestety fiasko, jednak nie załamywałbym się jeszcze gdyby nie fakt że spróbowałem to wdrożyć do pliku podanego tutaj:
http://www.w3schools.com/ajax/ajax_examples.asp
I częściowo mi się udało, mówię częściowo tylko dlatego że nie do końca wiem jak moge wyłuskać tekst z konkretnych znaczników.
Ten 'działający' plik wygląda następująco:
  1. <script type="text/javascript">
  2. function loadXMLDoc(url)
  3. {
  4. if (window.XMLHttpRequest)
  5. {// code for IE7+, Firefox, Chrome, Opera, Safari
  6. xmlhttp=new XMLHttpRequest();
  7. }
  8. else
  9. {// code for IE6, IE5
  10. xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  11. }
  12. xmlhttp.onreadystatechange=function()
  13. {
  14. if (xmlhttp.readyState==4 && xmlhttp.status==200)
  15. {
  16. document.getElementById('TYTUL').innerHTML=xmlhttp.status;
  17. document.getElementById('PIOSENKA').innerHTML=xmlhttp.statusText;
  18. document.getElementById('AUTOR').innerHTML=xmlhttp.responseText;
  19. }
  20. }
  21. xmlhttp.open("GET",url,true);
  22. xmlhttp.send();
  23. }
  24. </head>
  25.  
  26. <h2>Retrieve data from XML file</h2>
  27. <p><b>Status:</b><span id="TYTUL"></span></p>
  28. <p><b>Status text:</b><span id="PIOSENKA"></span></p>
  29. <p><b>Response:</b><span id="AUTOR"></span></p>
  30. <button onclick="loadXMLDoc('krasnoludki.xml')">Get XML data</button>
  31.  
  32. </body>
  33. </html>
  34.  
  35.  

I z porównania tych dwóch plików html (nie działającego i działającego), domyślam się że 'xmlhttp.status' wyświetla status numerycznie czyli np.200
'xmlhttp.statusText' to samo tylko słownie, a xmlhttp.responseText treść pliku.
Jednak gdy dodałem drugą identyczną linijkę z ID innego znacznika to skrypt przestał dzialać. Więc obecnie potrzebuje zrozumieć w jaki sposób i na jakich zasadach następuje pobieranie danych z XML'a.
(mam nadzieję że nie napisałem zbyt chaotycznie, aha i wszystko testuje na lokalnie zainstalowanym XAMPP).

Alternatywnie mogę wykorzystać do zrobienia tego całego skryptu (celu finalnego) pliki z SOAP ale nie wiem, czy to już nie za głęboka woda dla mnie skoro mam z tym problem.

Ten post edytował Mackos 10.11.2010, 00:30:51


--------------------
WebLemon.pl - projektowanie stron www, reklama i PR w internecie - Adwords, Facebook.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 12.06.2025 - 14:42