function downLoad($file_path,$new_name)
{
if (file_exists($file_path)==FALSE){
return 0;
}
$file=$file_path;
$fileinfo=finfo_open(FILEINFO_MIME_TYPE);
$mimeType=finfo_file($fileinfo,$file);
finfo_close($fileinfo);
header('Content-type:$mimeType'); //发送指定指定文件 MIME 类型的头信息报文
header('Content-Disposition:attachement;filename='."$new_name"); //文件名字 aaA.doc
header('Content-Length:'.filesize($file)); //文件大小
readfile($file);
}
downLoad("D:\\xampp\htdocs\aa.zip","aa.zip");
必须使用流下载,因为有图片,不然浏览器会解析。
好多这样的交互情景是下载的压缩包,比如下载个软件,难道他们自己放的链接??
1
dorentus 2019-12-02 18:49:52 +08:00 via iPhone
有 content-disposition:attachement 的 http header,浏览器就不会直接打开而是会提示下载了,不管是用 apache 还是 lighty 还是 nginx 或是 caddy,都可以很容易地给特定的 URL 的响应加上这个 header,根本不用走到 PHP 这里。
|
2
callme 2019-12-02 18:57:15 +08:00
public function download($params){
} --------------------------------------------------- 我首先在服务器压缩好了文件,然后拿到服务器存储的文件名和文件路径, |
3
callme 2019-12-02 18:57:58 +08:00
public function download($params){
$fileName = $params['fileName']; $downloadPath = $params['path']; header('Content-Type:application/x-compressed-tar;charset=utf-8'); header('Content-disposition:attachment;filename='.$fileName); $filesize = filesize($downloadPath); readfile($downloadPath); header('Content-length:'.$filesize); unlink($downloadPath); } --------------------------------------------------- 我首先在服务器压缩好了文件,然后拿到服务器存储的文件名和文件路径 |
4
zsdsz 2019-12-02 19:00:01 +08:00 via Android
ob_clean
|
5
lysS OP |