PHP:ta osaan jotenkin, mutta nämä headerit yms. ovat hepreaa.
<?php $file = './data/Skrillex - Bangarang.mp3'; header('Content-type: audio/mpeg'); header('Content-Length: ' . filesize($file)); readfile($file); ?>
Biisi soi, mutta iPhonen Safari (jolla tämän pitäisi toimia) ei näytä sen pituutta, eikä kappaletta voi täten kelata. Jos lyön osoiteriville tuon ./data/Skrillex - Bangarang.mp3 niin homma toimii, eli vika on headereissa? Webserverinä Apache, ilmeisesti uusin.
No mikset katsoisi selaimella mitä headereita palvelin lähettää, kun käytät suoraa osoitetta?
PHP-tiedosto:
. Connection:Keep-Alive . Content-Length:10346648 . Content-Type:audio/mpeg . Date:Tue, 24 Sep 2013 17:14:47 GMT . Keep-Alive:timeout=5, max=100 . Server:Apache/2.2.22 (Debian) . X-Powered-By:PHP/5.4.4-14+deb7u4
Suora linkki:
. Accept-Ranges:bytes . Connection:Keep-Alive . Content-Length:1 . Content-Range:bytes 522026-522026/10346648 . Content-Type:audio/mpeg . Date:Tue, 24 Sep 2013 17:15:40 GMT . ETag:"e0ca3-9de098-4e720166e760e" . Keep-Alive:timeout=5, max=99 . Last-Modified:Tue, 24 Sep 2013 12:15:08 GMT . Server:Apache/2.2.22 (Debian)
ETag ja Content-Range näyttäisivät puuttuvan PHP-skriptistäni. Miten muodostaa nämä?
EDIT: Ja suorassa linkissä Content-Legth: 1 ??
Vaikuttaa siltä, että ero johtuu siitä, että php-skriptisi ei tue ns. byte servingiä, eli tiedoston osien lataamista.
Voisit vaikka googlettaa byte serving php
Tässä yksi sivu mikä em. haulla löytyi http://www.coneural.org/florian/papers/
Aihe on jo aika vanha, joten et voi enää vastata siihen.