分享、学习、提高
2008/04/30 11:15
前几天用我的合租空间赞助朋友宝宝的一个空间,装了这套我推荐的Bo-Blog系统。

昨天发现,无法上传大于2M的文件。看了下phpinfo,发现max_upload_filesize的值是2M。
出于放宝宝视频的要求,已经将十几M的视频通过软件转换为3M左右的swf格式了。

今天想到用ini_set来修改,查了下文档。
引用

post_max_size integer
设定 POST 数据所允许的最大大小。此设定也影响到文件上传。要上传大文件,该值必须大于 upload_max_filesize。

upload_max_filesize integer
所上传的文件的最大大小。

当使用 integer 类型时,其值以字节为度量单位。


8M = 8*1024*1024
默认的post_max_size是8M,不用修改了。
<?
ini_set('upload_max_filesize', 8388608);  
?>
发现无效!试了多次都不行。开始还以为是空间不支持修改,后来在本机试发现也修改不了。
<?
if(ini_set('upload_max_filesize', 8388608)){
  echo 'OK';
}else{
  echo 'no';  
}
?>
提示no,看来是改不了:(

搜索了下,找到解决办法,在.htaccess中设置。

于是在.htaccess中加入php_value upload_max_filesize 8m。
在看phpinfo,哈,upload_max_filesize已经变成8M了!

在Blog中尝试上传大于2M的文件,发现提示"上传的文件大小超出了限制 ( 2048 KB)"。

搜索了一下Blog的程序,找到了修改的地方。

用户组设置->管理员(编辑),上传文件最大 () KB 中的2048改为8192。

再次尝试上传,OK!

补充知识点:
其实在php文档里有说明upload_max_filesize的可修改范围是PHP_INI_PERDIR。
PHP_INI_PERDIR的意思是域内指令可以在php.ini、httpd.conf或.htaccess文件中修改。
PHP_INI_SYSTEM      域内指令可以在php.ini和httpd.conf文件中修改
所以upload_max_filesize用int_set是无法修改的。只有可修改范围是PHP_INI_ALL的才可以用int_set修改。
发表评论
表情
emotemotemotemotemot
打开HTML
打开UBB
打开表情
隐藏
昵称   密码   游客无需密码
网址   电邮   [注册]