天天看点

上传文件提示 413 Request Entity Too Large 错误

做了一个文件上传接口,刚开始以为是自己写的代码有问题,后台打断点后发现不是接口的问题,上网查了一下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了。

代码如下:

三、 Nginx服务器

修改nginx.conf的值就可以解决了。

client_max_body_size 2M