步骤是这样的:
1. 用PHP调用System命令:system("tar -zcf $zipFile $tempPath", $retval);
2. 通过header方式将文件提供下载:
set_time_limit(0);
header("Content-Encoding: none");
header("Content-type: application/x-gzip");
header("Cache-Control: private");
header("Accept-Ranges: bytes");
header("Accept-Length: ".filesize($zipFile));
header("Content-Disposition: attachment; filename=".basename($zipFile));
header('Pragma: no-cache');
header('Expires: 0');
readfile($zipFile);
问题: 下载完后打不开文件,Window,Linux下测试均不行。测试时,如果用zip命令打包,则可以下载后可以正确打开,或者提供输出的文件,即指定$zipFile=非tar.gz格式的文件也能正确下载并打开。请问问题是出在哪呢?
1. 用PHP调用System命令:system("tar -zcf $zipFile $tempPath", $retval);
2. 通过header方式将文件提供下载:
set_time_limit(0);
header("Content-Encoding: none");
header("Content-type: application/x-gzip");
header("Cache-Control: private");
header("Accept-Ranges: bytes");
header("Accept-Length: ".filesize($zipFile));
header("Content-Disposition: attachment; filename=".basename($zipFile));
header('Pragma: no-cache');
header('Expires: 0');
readfile($zipFile);
问题: 下载完后打不开文件,Window,Linux下测试均不行。测试时,如果用zip命令打包,则可以下载后可以正确打开,或者提供输出的文件,即指定$zipFile=非tar.gz格式的文件也能正确下载并打开。请问问题是出在哪呢?
tar.gz文件的MIME类型应该是 application/x-compressed-tar
即 header("Content-type: application/x-compressed-tar“);