XHR bináris adatátvitel

XHR bináris adatátvitel
2020-08-08T14:20:39+02:00
2020-08-08T17:00:36+02:00
2022-10-15T21:25:39+02:00
cocoya3
Sziasztok!

Mezítlábas xhr példát kellene beüzemelni működőre (forrás anyag mellékelve). Az elakadás egyenlőre ott van, hogy a .response a jelek szerint nem ad vissza valós adatot.

Egy mezei teszt környezetben wamp2-t telepítettem. A mellékelt file-ok (3 darab) mind a www mappában vannak. Böngészőből (chrome, más böngészővel nem szükséges foglalkozni, a példa sem teszi) ráhívok a web címre (xhr_binary_js.html), az behívja a php scriptet (localhost-on xhr_binary_php.php), és hex logot dob képernyőre a visszaérkezett adatról (normál esetben a bin1.bin tartalma - Jancsi és Juliska bemutató blog részlet wikipedia-ról ). A képernyőre kerülő adat sajnos arra utal, valami nincs rendjén.

A scriptek nem éppen rövidek, de tagoltak, kommentelve, lásd a mellékletet(a html + php együtt 9 kbyte / 260 sor kommentelve). A scriptek szerkezeti felépítése a weben található blogok példái alapján lett összeállítva. Ha véletlenül valami lényegeset nem találtam volna meg, blog linknek örülnék. Ha valaki kiszúrja, mi a hiba, annak is örülni fogok.

A példa nyers bináris átvitel. Nem foglalkoztam multipart mime meg semmi olyasmivel, de ha keretezve át tud menni multipart data, arról is örülnék példának. Ami fontos lenne, hogy letisztítható mezítlábas php / javascript példa kellene, nem egy 6 gigás framework egészben.

Bármilyen nyomravezetést köszönök. A mellékelt anyag ebben a formájában gpl
Mutasd a teljes hozzászólást!
Csatolt állomány
Hát ez alapján az lehet a probléma, hogy a PHP kód rossz adatot küld le, és a kliens oldalnak semmi köze a hibához. Első tippem hogy ez egy hibaüzenet, ami HTML markupban próbálja elmagyarázni hogy valami nem jó.

A PHP-hoz ugyan nem értek, de nagyon gyanús hogy a $bin_file megy a file_put_contents paraméterének, de ő soha nem kap értéket. Van $bin_file_data, $bin_file_name meg egyéb hasonló, de $bin_file pont nincs. Nem lehet, hogy ez hibát okoz PHP oldalon, és a hibaüzenetet olvassa a kliens a tényleges válasz helyett?

Ha nem is ez a gond, én mindenképp kettévágnám a problémát. Először legyen a szerver oldal jó (ezt tesztelheted curl-lel vagy Fiddlerrel, a lényeg hogy ne böngészőből legyen egy komplex kód végeredménye a kérés). Ha a szerver oldal már tutira a jó választ adja vissza, akkor kezdenék neki a kliens oldalt debugolni, ha még mindig gond van vele.
Mutasd a teljes hozzászólást!

  • Azok kedvéért, akik nem akarnak felrakni egy Wamp2-t, esetleg elmondanád, mi utal rá, hogy valami nincs rendjén? Mondjuk egy screenshot arról, hogy mi kerül az output mezőbe, vagy bemásolhatod ide, amit a böngésző kiír a divbe.
    Mutasd a teljes hozzászólást!
  • Oké, bocsánat

    Szóval van egy log a php scripthez, abba ez kerül bele (a script jelenlegi állapotában tipikusan):

    ------------------------- UTC 2020.08.08-13:38:49-> incoming connection ------------------------- UTC 2020.08.08-13:38:49-> input: *{"file_name":"bin1.bin"}* ------------------------- UTC 2020.08.08-13:38:49-> answer sent (325 bytes)
    És van egy javascript kimenet, ami 32 byte per sor a linkelt scriptben (a html file 76. sorában van a limit), a prog.hu képernyőjére kényelmesebben férni ki a közbülső sorokat töröltem, a text egyébként a script környezeti változóira utal, és méretileg sem tud összepasszolni a valós adatátvitellel:

    sending xhr onreadystatechange#readyState 4: DONE, status 200: *OK* result byte length:1070 0000: 3C 62 72 20 | 2F 3E 0A 3C | 66 6F 6E 74 | 20 73 69 7A | 65 3D 27 31 | 27 3E 3C 74 | 61 62 6C 65 | 20 63 6C 61 - .br.....font.size..1...table.cla ... ... 0420: 74 61 62 6C | 65 3E 3C 2F | 66 6F 6E 74 | 3E 0A __ __ | __ __ __ __ | __ __ __ __ | __ __ __ __ | __ __ __ __ - table...font.. binary load done 1070 byte kimenet a küldött 325-ből.
    Mutasd a teljes hozzászólást!
  • Ha bármit segíteni tud, a wamp2 nem fél gigás, mint a wamp3, hanem csak 30 mega körüli. A magam részéről "wampserver2.2e-php5.4.3-httpd2.2.22-mysql5.5.24-32b.exe"-t raktam fel innét: WampServer - Browse /WampServer 2/WampServer 2.2/wampserver2.2e at SourceForge.net
    Mutasd a teljes hozzászólást!
  • Hát ez alapján az lehet a probléma, hogy a PHP kód rossz adatot küld le, és a kliens oldalnak semmi köze a hibához. Első tippem hogy ez egy hibaüzenet, ami HTML markupban próbálja elmagyarázni hogy valami nem jó.

    A PHP-hoz ugyan nem értek, de nagyon gyanús hogy a $bin_file megy a file_put_contents paraméterének, de ő soha nem kap értéket. Van $bin_file_data, $bin_file_name meg egyéb hasonló, de $bin_file pont nincs. Nem lehet, hogy ez hibát okoz PHP oldalon, és a hibaüzenetet olvassa a kliens a tényleges válasz helyett?

    Ha nem is ez a gond, én mindenképp kettévágnám a problémát. Először legyen a szerver oldal jó (ezt tesztelheted curl-lel vagy Fiddlerrel, a lényeg hogy ne böngészőből legyen egy komplex kód végeredménye a kérés). Ha a szerver oldal már tutira a jó választ adja vissza, akkor kezdenék neki a kliens oldalt debugolni, ha még mindig gond van vele.
    Mutasd a teljes hozzászólást!
  • Ez a br és tabla a bin fájlban van? Nálam jött vissza egy

    Notice: Undefined variable: bin_file in C:\...\xhr_binary_php.php on line 96
    hibaüzenet. Nem lehet, hogy ezt a hibaüzenetet kapod meg te is, csak ilyen szépen formázva?
    Mutasd a teljes hozzászólást!
  • Damn.. írogattam át a változóneveket, és elnéztem

    Javítottam, a $bin_file-t $bin_file_data-ra, és működik.

    Köszönöm a segítséget.
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd