windows 之PHP.INI配置:文件上传功能配置教程

来源:互联网 发布:万能网络监控客户端 编辑:程序博客网 时间:2024/05/20 13:05

打开php.ini配置文件中的upload_tmp_dirupload_max_filesizepost_max_size等选项。


php.ini中文件上传功能配置选项说明


  打开php.ini配置文件找到FileUploads


file_uploads= On


  默认允许HTTP文件上传,此选项不能设置为OFF


upload_tmp_dir=


  默认为空,此选项在手动配置PHP运行环境时,也容易遗忘,如果不配置这个选项,文件上传功能就无法实现,这个选项设置的是文件上传时存放文件的临时目录,你必须给这个选项赋值,比如upload_tmp_dir=’/leapsoulcn’,代表在C盘目录下有一个leapsoulcn目录,和session配置一样,如果你是在linux环境下,你必须赋予这个目录可写权限。


  如何上传超过8M的大文件?


  上传大文件主要涉及配置upload_max_filesizepost_max_size两个选项。


php.ini配置文件中的默认文件上传大小为2Mphp初学者容易犯的一个错误是在编写文件上传功能时通过设置上传文件最大大小的表单区域,即允许上传文件的最大值,max_file_size(隐藏值域)的值来规定上传文件的大小,其实一般别人可以绕过这个值,所以安全起见,最好是在php.ini配置文件中配置upload_max_filesize选项,设定文件上传的大小。


  默认upload_max_filesize= 2M,即文件上传的大小为2M,如果你想上传超过8M的文件,比如20M,你必须设定upload_max_filesize= 20M


  但是光设置upload_max_filesize= 20M还是无法实现大文件的上传功能,你必须修改php.ini配置文件中的post_max_size选项,其代表允许POST的数据最大字节长度,默认为8M。如果POST数据超出限制,那么$_POST$_FILES将会为空。要上传大文件,你必须设定该选项值大于upload_max_filesize指令的值,我一般设定upload_max_filesizepost_max_size值相等。另外如果启用了内存限制,那么该值应当小于memory_limit选项的值。


  文件上传的其他注意事项


  在上传大文件时,你会有上传速度慢的感觉,当超过一定的时间,会报脚本执行超过30秒的错误,这是因为在php.ini配置文件中max_execution_time配置选项在作怪,其表示每个脚本最大允许执行时间()0表示没有限制。你可以适当调整max_execution_time的值,不推荐设定为0

 

 

二.Iis

今天在做post表单提交多个textarea控件中的内容时,出现一些意外情况,为了避免以后再出现这种情况,有个清晰的思路,特此写下以下琐碎细节。测试环境为windows的iis。
以下内容针对一个textarea输入内容测试遇到的问题。当提交数据量比较小时,保存正常。当提交数据量为一篇文章时(大约30k左右),点击保存出现白页现象,没有任何反应。通过firebug查看网络查看表单提交情况,post选项中出现“... Firebug 达到了 Post 请求大小限制。 ...”这样的提示。
总结:
(1)post提交表单数据量限制为100k左右,超过将无法提交。
(2)在iis6.0中表单最大传输大小为200k,因此需要通过以下方式修改配置文件,实现大数据传输
1. 关闭 IIS AdminService 服务
2. 打开%WinDir%\system32\inetsrv\metabase.xml
3. 修改AspMaxRequestEntityAllowed 的值为自己需要的, 默认为 204800,AspBufferingLimit也改成相同值,
4. 启动 IIS AdminService
(3)在iis5.1以下post 方法限制传递的数据为2M
(3)get最大提交数据量为4k左右
(4)表单控件(如textarea)最大提交的数据量为30k左右,超过将出现以上异常情况,导致表单无法提交成功.

0 0