php download
php download big file1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19if (file_exists($path)) {
$file_size = filesize($path);
if (FALSE!== ($handler = fopen($path, 'r'))){
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Accept-Ranges: bytes');
header('Content-Disposition: attachment; filename='.basename($path));
header('Accept-Length:'. $file_size);
header('Content-Transfer-Encoding: chunked');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
$buffer_size = 4096*20;
while(!feof($handler)){
$chunk = fread($handler,$buffer_size);
echo $chunk;
}
fclose($handler);
}
php upload big file
第一步: Apache环境中的档案上传大小控制
修改httpd.conf
添加下面内容
LimitRequestBody 10485760
即10M=1010241024,有的文章中提到应改为 600000000
重新启动apache,就可以在设置里看到你要的大小
第二步:修改在php5下POST文件大小的限制
修改php.ini
找到 File Uploadsh区域修改以下几个参数: file_uploads = on ;是否允许通过HTTP上传文件的开关。
默认为ON即是开 upload_tmp_dir ;文件上传至服务器上存储临时文件的地方,如果没指定就会用系统默认的临时文件夹(moodle可以不改)
upload_max_filesize = 8m ;允许上传文件大小的最大值.
找到 Data Handling区域,修改 post_max_size = 8m ;指通过表单POST给PHP的所能接收的最大值,包括表单里的所有值。
默认为8M
设上述四个参数后,上传小于8M的文件一般不成问题。但如果上传大于8M的文件,只还得设置以下参数:
在Resource Limits 区域: max_execution_time = 600 ;
每个PHP页面运行的最大时间值(秒),默认30秒 max_input_time = 600 ;
每个PHP页面接收数据所需的最大时间,默认60秒 memory_limit = 8m ;
每个PHP页面所吃掉的最大内存,默认8M