sunfull 发表于 2017-12-30 12:31:46

php ini_set更改php.ini配置,通过它修改php.in达到php上传文件大小限制是不行的,除非修改.htaccess文件

  PHP ini_set() 无效的原因:
  如题:我租的是虚拟主机,php.ini里的upload_max_filesize是默认的2M,要直接修改php.ini文件是不可能的。我如果想上传超过2M的怎么呢?ini_set("upload_max_filesize", "8M");我试了,好象没有用!!
  ini_set("upload_max_filesize", "8M");肯定不能用啊,要是随便一个用户都能修改的话,那这个虚拟主机上的其他用户不倒霉了?!!
  我改过php.ini中的upload_max_filesize 有效。(假的)
  ========================================================================================================
  ini_set,post_max_size,upload_max_filesize,magic_quotes_gpc等用ini_set设置不了!
  ini_set('max_execution_time','10′);
  ini_set('memory_limit','1024M');
  echo 'max_execution_time = ' . ini_get('max_execution_time') . "";
  echo 'memory_limit = ' . ini_get('memory_limit') . "";
  echo 'post_max_size = ' . ini_get('post_max_size') . "";
  echo 'upload_max_filesize = ' . ini_get('upload_max_filesize') . "";
  ini_set('max_execution_time','10′);
  ini_set('memory_limit','1024M');
  注意:
  post_max_size,upload_max_filesize用下面的方法是修改不了的.
  ini_set('post_max_size','1024M');
  ini_set('upload_max_filesize','1024M');
  正确做法是用.htaccess文件:
  php_value upload_max_filesize "80M"
  php_value post_max_size "80M"
  php_value max_execution_time "2000"
  php_value memory_limit "150M"
  补充知识点:
  其实在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修改。
  Nginx,上传:通过设置nginx的client_max_body_size解决nginx+php上传大文件的问题
  http://hi.baidu.com/zhizheqianlv/item/d5989d506b1f6f15aaf6d702
  client_max_body_size
  这个可以限制
  magic_quotes_gpc 用 get_magic_quotes_gpc() 获得,不能用 set_magic_quotes_gpc 修改,原因是没这个函数。而magic_quotes_runtime可以用set_magic_quotes_runtime()来设置
  http://www.111cn.net/phper/php-function/34292.htm
  ini_set可以快速的修改php.ini配置设置哦,无需打开php.ini就可以了:
  对了那个fastcgi设置临时上传大小可以通过那个对php.ini里的文件改动进行设置能生效么?
页: [1]
查看完整版本: php ini_set更改php.ini配置,通过它修改php.in达到php上传文件大小限制是不行的,除非修改.htaccess文件