打开php.ini,
首先找到file_uploads = on
;是否允许通过HTTP上传文件的开关。默认为ON即是开
upload_tmp_dir
;文件上传至服务器上存储临时文件的地方,如果没指定就会用系统默认的临时文件夹
upload_max_filesize = 8m
;即允许上传文件大小的最大值。默认为2M
post_max_size = 8m
;指通过表单POST给PHP的所能接收的最大值,包括表单里的所有值。默认为8M
一般地,设置好上述四个参数后,上传<=8M的文件是不成问题,在网络正常的情况下。但如果要上传>8M的大体积文件,只设置上述四项还一定能行的通。
进一步配置以下的参数
max_execution_time = 600
;每个PHP页面运行的最大时间值(秒),默认30秒
max_input_time = 600
;每个PHP页面接收数据所需的最大时间,默认60秒
memory_limit = 8m
;每个PHP页面所吃掉的最大内存,默认8M
把上述参数修改后,在网络所允许的正常情况下,就可以上传大体积文件了
max_execution_time
= 600
max_input_time = 600
memory_limit = 32m
file_uploads =
on
upload_tmp_dir = /tmp
upload_max_filesize = 32m
post_max_size =
32m
/* 文件上传相关配置在config里面配置 */
'DOWNLOAD_UPLOAD' => array(
'mimes' => '', //允许上传的文件MiMe类型
'maxSize' => 5*1024*1024, //上传的文件大小限制 (0-不做限制)
'exts' => 'jpg,gif,png,jpeg,zip,rar,tar,gz,7z,doc,docx,txt,xml', //允许上传的文件后缀
'autoSub' => true, //自动子目录保存文件
'subName' => array('date', 'Y-m-d'), //子目录创建方式,[0]-函数名,[1]-参数,多个参数使用数组
'rootPath' => './Uploads/Download/', //保存根路径
'savePath' => '', //保存路径
'saveName' => array('uniqid', ''), //上传文件命名规则,[0]-函数名,[1]-参数,多个参数使用数组
'saveExt' => '', //文件保存后缀,空则使用原后缀
'replace' => false, //存在同名是否覆盖
'hash' => true, //是否生成hash编码
'callback' => false, //检测文件是否存在回调函数,如果存在返回文件信息数组
),
/* 文件上传 */
public function upload()
{
$return = array('status' => 1, 'info' => '上传成功', 'data' => '');
/* 调用文件上传组件上传文件 */
$File = D('File');
$file_driver = C('DOWNLOAD_UPLOAD_DRIVER');
$info = $File->upload(
$_FILES,
C('DOWNLOAD_UPLOAD'),
C('DOWNLOAD_UPLOAD_DRIVER'),
C("UPLOAD_{$file_driver}_CONFIG")
);
/* 记录附件信息 */
if ($info) {
$return['data'] = $info['download'];
$return['info'] = $info['download']['name'];
$return['data']['id'] = M('picture')->add(array('path'=>'/Uploads/Download/'.$return['data']['savepath'].''.$return['data']['savename'],'md5'=>$return['data']['md5'],'sha1'=>$return['data']['sha1'],'status'=>1,'create_time'=>NOW_TIME));
} else {
$return['status'] = 0;
$return['info'] = $File->getError();
}
/* 返回JSON数据 */
$this->ajaxReturn($return);
}
post_max_size 属于 PHP_INI_PERDIR 属性,只能在 php.ini, .htaccess 或 httpd.conf 中设置,如果 php.ini 或者 httpd.conf 都无权限的话(虚拟主机通常如此),那么只能通过 .htaccess 来设置(虚拟主机通常支持)。参考设置如下:
.htaccess里写入
php_value post_max_size 12m
php_value upload_max_filesize 12m
php_value max_execution_time 120
php_value max_input_time 240
没测试过,仅供参考。
同时注意可能需要一并设置 upload_max_filesize
服务器也是一样呀。你有管理员的权限就可以修改。