共计 939 个字符,预计需要花费 3 分钟才能阅读完成。
有时我们希望如图片、文本文档、网页、mp3、pdf等内容,当点击对应链接时直接下载,而不是在网页上显示,那么就需要强制设置header头信息。以下为一段不会产生乱码的php函数实现代码,其他程序语言也可参考之编写实现
/** | |
* Downloader | |
* | |
* @param $archivo | |
* path al archivo | |
* @param $downloadfilename | |
* (null|string) el nombre que queres usar para el archivo que se va a descargar. | |
* (si no lo especificas usa el nombre actual del archivo) | |
* | |
* @return file stream | |
*/ | |
function download_file($archivo, $downloadfilename = null) { | |
if (file_exists($archivo)) { | |
$downloadfilename = $downloadfilename !== null ? $downloadfilename : basename($archivo); | |
header('Content-Description: File Transfer'); | |
header('Content-Type: application/octet-stream'); | |
header('Content-Disposition: attachment; filename=' . $downloadfilename); | |
header('Content-Transfer-Encoding: binary'); | |
header('Expires: 0'); | |
header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); | |
header('Pragma: public'); | |
header('Content-Length: ' . filesize($archivo)); | |
ob_clean(); | |
flush(); | |
readfile($archivo); | |
exit; | |
} | |
} |
正文完