Si desea forzar una descarga, puede usar algo como lo siguiente:
<?php
// Fetch the file info.
$filePath = '/path/to/file/on/disk.jpg';
if(file_exists($filePath)) {
$fileName = basename($filePath);
$fileSize = filesize($filePath);
// Output headers.
header("Cache-Control: private");
header("Content-Type: application/stream");
header("Content-Length: ".$fileSize);
header("Content-Disposition: attachment; filename=".$fileName);
// Output file.
readfile ($filePath);
exit();
}
else {
die('The provided file path is not valid.');
}
?>
Si simplemente enlaza a este guión usando un enlace normal, el archivo se descargará.
Dicho sea de paso, el fragmento de código anterior debe ejecutarse al inicio de una página (antes de que haya aparecido ningún encabezado o salida HTML) También tenga cuidado si decide crear una función basada en esto para descargar archivos arbitrarios - Deberá asegurarse de evitar el cruce de directorios (realpath es útil), solo permite descargas desde un área definida, etc., si acepta entradas de $ _GET o $ _POST.
'download'? – RaYell
@RaYell dijo * en PHP *. Entonces, en realidad es 'echo 'download';': P –