armfly 发表于 2019-8-18 02:01:10

上传大于30M的文件出现Upload Error: 413问题

上传文件出现Upload Error: 413问题.

1.php.ini 文件中的设置没问题。
   max_execution_time = 600 ;每个PHP页面运行的最大时间值(秒),默认30秒
   max_input_time = 600 ;每个PHP页面接收数据所需的最大时间,默认60秒
   memory_limit = 128m ;每个PHP页面所吃掉的最大内存,默认8M
   upload_max_filesize=100M   
    post_max_size=100M   
    memory_limit=128M   

2.DZ后台设置没问题
3.原因是IIS7的配置限制了最大文件长度 30M
    C:\Windows\System32\inetsrv\config\schema目录,该目录下有一个IIS_schema.xml
   maxAllowedContentLength" type="uint" defaultValue="30000000"    ----- 这个地方限制了最大30MB


原文:https://www.cnblogs.com/juexin/archive/2012/07/18/2597736.html
摘录:


最近项目中涉及到一个上传附件的问题,项目在本地运行时上传无论多大的附件都是没有问题,但是一旦部署到服务器上以后上传的附件超过一定大小就上传不成功!这种问题一般都是iis对上传附件限制问题。于是打开IIS(IIS7),修改配置节大小,结果试下,还是不行,于是上网搜了几种方式都不行!于是,暂且放下这个问题…本文来自IISBOY网

今天闲来没什么事,继续上网搜下有关的解决办法,看到一个解决方法(经证明,是可以的啊http://www.iisboy.com/uploads/allimg/110807/10345A2B-0.gif),具体的方法是什么样的呢,如下: 内容来自iisboy一、找到修改大小的配置文件和配置节点 本文来自IISBOY网打开你系统盘(我是C盘),找到 C:\Windows\System32\inetsrv\config\schema目录,该目录下有一个IIS_schema.xml,右击打开文件,Ctrl+F,然后输入"   内容来自iisboy<attribute name="maxAllowedContentLength" type="uint" defaultValue="30000000" />",找到该配置节点,我们看到有一个defaultValue=30000000,不错,就是它限制了上传文件的大小,既然找到了,那就让咱来把它修改掉吧,暂且把3改为5(50M左右)试试吧!Ctrl+S,弹出无法保存,文件是只读属性!那好吧,咱来把文件的只读属性改掉吧!右击—>属性—>去掉只读,保存!嘣,弹出了一个对话框,提示没有权利修改文件属性,用的是管理员登录的,还没有权限,哎,权限问题!同样,我们这时想编辑administrator权限把修改和写入权限加上去同样会弹出上面没有权限的提示!https://pic002.cnblogs.com/images/2012/392914/2012071816475278.jpg二、修改文件权限以便能修改文件 内容来自iisboy找到了修改的地方却不能修改,却碰到权限问题,而且就这个 权限问题还搞了我半天,郁闷啊!废话少说,继续工作吧! copyright iisboy右击文件—>属性—>安全,我们看看administrator权限https://pic002.cnblogs.com/images/2012/392914/2012071816473137.jpg我们看到,administrator只有读取的权限,并没有写入和修改的权利,我们再看下面有个TrustedInstallerhttps://pic002.cnblogs.com/images/2012/392914/2012071816490353.jpg我们发现该用户组却又这对当前这个文件的所有权限!百度看下,网上说从Vista到Windows 7系统开始,系统加入了TrustedInstaller虚拟帐目,权限比administrator还大,哎,不管它呢!现在我就要用administrator来修改文件。单击“高级”—>"所有者",如下:https://pic002.cnblogs.com/images/2012/392914/2012071816504652.jpg当前所有者是"TrustedInstaller",我们要把它改为“administrator”,单击“编辑”,选择“administrator”,单击“应用”,这时弹出一个对话框,如下图:https://pic002.cnblogs.com/images/2012/392914/2012071816515757.jpg不用管它,单击确定,这时,我们看当前文件的所有者变成administrator了,如下图:https://pic002.cnblogs.com/images/2012/392914/2012071816525215.jpg操作完这一切了,我们回头想直接修改文件属性还是不够的,我们需要把我们administrator对文件的权限提升下,勾上“完全控制”,如下图:https://pic002.cnblogs.com/images/2012/392914/2012071816535330.jpg三、修改配置文件IIS安装配置疑难网站
好了,我们现在有文件的完全控制权限了,我们先把文件的只读属性去掉,接下来修改大小就很简单,找到第一步讲的配置节点将大小修改为自己想要的大小,然后重启下IIS即可,经验证也是正确的!到现在对IIS对上传附件大小限制的修改也就完成了!http://www.iisboy.com/uploads/allimg/110807/1034562001-8.gif本文来自IISBOY网

四、后续——将文件的权限还原iisboy.com
刚才我们将文件的所有者改为了administrator,现在我又想将文件的所有者还原,怎么办呢,按照老办法:右击—>属性—>安全—>高级—>所有者—>编辑—>其他用户或组,我们输入“TrustedInstaller”,检查名称却说找不到用户名和组,于是继续百度啊!原来全程应是“NT SERVICE\TrustedInstaller”,检查名称果然正确了,然后确定—>确定……就这样,我们又把文件还原成修改前的权限啦,大功告成,哈哈!http://www.iisboy.com/uploads/allimg/110807/10345B4E-9.gif附注:上边是修改上传文件限制的,现在这个是修改下载文件限制的:先在服务里关闭 iis admin service 服务。
2、找到 windows\system32\inetsrv\config\schema下的 IIS_schema.xml 文件。
3、取消文件的只读属性。
4、用纯文本方式打开,找到bufferingLimit 把它对应的 defaultValue="4194304"即4096KB , 修改为需要的值,修改的值要求在0-2147483647之间。这里的修改文件属性的同上!!!

armfly 发表于 2019-8-18 07:49:40



上传36M文件 测试OK。 问题解决。

eric2013 发表于 2019-8-18 10:43:02

确实可以了。
页: [1]
查看完整版本: 上传大于30M的文件出现Upload Error: 413问题