做了一个文件上传接口,刚开始以为是自己写的代码有问题,后台打断点后发现不是接口的问题,上网查了一下HTTP 413错误,(request entity too large),是HTTP协议状态码的一种,表示“请求实体过大”。当因请求的实体过大,超出服务器的处理能力,导致服务器无法处理请求时就会返回此错误代码,一般在上传文件时可能会出现此错误。
既然是上传文件大小的设置问题,那么修改配置文件就好了,三种服务器(nginx,apache,iis) 上的的解决方法:
一、 Apache服务器
找到apache的配置文件目录也就是conf目录,和这个目录平行的一个目录叫conf.d打开这个conf.d,里面有一个php.conf
# PHP is an HTML-embedded scripting language which attempts to make it
# easy for developers to write dynamically generated webpages.
LoadModule php4_module modules/libphp4.so
# Cause the PHP interpreter handle files with a .php extension.
SetOutputFilter PHP
SetInputFilter PHP
LimitRequestBody 6550000
# Add index.php to the list of files that will be served as directory
# indexes.
#
DirectoryIndex index.php
错误就发生在这个LimitRequestBody配置上,将这个的值改大到超过你的软件大小就可以了,如果没有这个配置文件请将写到apache的配置文件里面即可。
二、 IIS服务器(Windows Server 2003系统IIS6)
先停止IIS Admin Service服务,然后找到windows/system32/inesrv/下的metabase.xml,打开,找到ASPMaxRequestEntityAllowed 修改为需要的值,然后重启IIS Admin Service服务
1、在web服务扩展 允许active server pages和在服务器端的包含文档
2、修改各站点的属性:主目录-配置-选项-启用父路径
3、使之可以上传大文档(修改成您想要的大小就可以了,以字节为单位)
c:/WINDOWS/system32/inetsrv/MetaBase.xml
企业版的windows2003在第592行
默认的预设置值 AspMaxRequestEntityAllowed=“204800” 即200K将其加两个0,即改为,现在最大就可以上传20M了。
代码如下:
AspMaxRequestEntityAllowed="20480000"
三、 Nginx服务器
修改nginx.conf的值就可以解决了。
client_max_body_size 2M