Volgens uw code, $row[1]
is "de bestandsnaam". De koptekst van het inhoudstype moet het inhoudstype bevatten in plaats daarvan, d.w.z. het bestands-mime-type, bijvoorbeeld:
header('Content-type: application/pdf');
Als u een bestandsnaam wilt toevoegen:
header('Content-type: application/pdf');
header('Content-Disposition: attachment; filename='.$row[1]);
print $data;
Zorg ervoor dat $data
is de inhoud van het bestand, iets dat je kunt halen uit readfile()
bijvoorbeeld.
Lees meer over de handleiding:http://php.net/manual/en/function .readfile.php
Houd er rekening mee dat hoewel PDF en afbeeldingen gemakkelijk door een browser kunnen worden bekeken, ik denk dat Excel wat ad hoc nodig heeft plug-in daarvoor.
Een completer voorbeeld rechtstreeks uit de handleiding , om je een grondiger idee te geven (niet al die headers zijn nodig, en je zou andere moeten aanpassen aan je code):
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($file));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
ob_clean();
flush();
readfile($file);
exit;