Ik kom er even niet uit met de headers.
Ik wil een bestand laten downloaden, maar moet ook verder gaan naar de link ?nummer=blabla.
Nou probeer ik dit:
<?php
echo $_GET['nummer'].' is gedownload<hr>';
$nummer = $_GET['nummer'];
$extensie = '.mp3';
header('Content-type: application/mp3');
header('content-disposition: attachment; filename='.$nummer.$extensie.'');
sleep(1);
header("Location: downloads.php?$nummer");
?>
Maar hij doet steeds maar 1 ding tegelijk daarom heb ik geprobeert met een sleep, maar ook dat helpt niet.
Nou wacht hij 1sec en gaat naar de location, maar krijg geen download venster. Als ik header location uitzet wel. Maar dan werkt het script niet om dat dan de url niet klopt.
Mocht je het bestand uit de database willen halen (ik denk in ieder geval dat dat de bedoeling is), dan is het onderstaande script download.php (uiteraard te vervangen door je eigen variabelen en parameters):
<?php
include("mijn_sql_connectie.php");
$query=mysql_query("SELECT filename,filetype,content FROM files WHERE file_id='".$_GET['id']."';");
$row=mysql_fetch_assoc($query);
Anders gebruik je dit script en gebruik je $_GET['id'] om het complete pad naar het bestand te specificeren ipv een sleutel (niet vergeten het juiste MIME-type te specificeren):
Jij probeert nou gewoon uit te leggen hoe je een bestand moet downloaden. Dit lukt wel, maar het probleem is dat hij niet 2 verschillende headers tegelijk doet.
Je hebt downloads.php
Hij moet naar downloads.php?nummer=blabla
en daar krijg je het Opslaan als venster.
Wat hij doet is blijven staan op downloads.php en het Opslaan als venster tonen. Daarna als je de pagina refresht heeft hij wel de database geupdate maar dit moet tegelijk gebeuren.
Als hij wel de pagina goed toont, krijg ik geen Opslaan als venster, het is steeds maar 1 van de 2.
Of ik krijg een foutmelding van Firefox:
"De pagina verwijst niet op een juiste manier door.
Firefox heeft vastgesteld dat de server het verzoek voor dit adres doorverwijst op een manier die nooit zal eindigen."
Waarna ik 21x een update krijg ipv 1x.
@Terence, dat kan inderdaad maar is niet zo van toepassing omdat hij toch de header location moet uitvoeren.
@Php newbie, klopt sorry. Maar ik zie wel dat het goed in m'n script staat maar fout hier neer gezet.
Ik blijf erbij dat de headers anders moet worden uitgevoert. Eerst de header location en daar iets bij mee sturen zodat de header attachment start. Ik ga nog even verder prutsen.
Bedankt. Maar dit scheelt niet zo heel veel met wat ik al had en krijg dus alsnog niet dat m'n script verder gaat.
Hij moet dus EN de mp3 downloaden EN doorgaan naar downloads.php?nummer= want anders wordt de query niet uitgevoert en de echo niet getoont.