proftpd文件上传速度的限制范围_「编程经验」大文件上传提示“413,请求实体太大”问题的解决...

最近的编程项目,需要完成一个将大文件上传到服务器的功能,但是,在功能测试过程中遇到了一个问题,遇到上传超过28M的文件的时候就会报错。提示“Request Entity Too Large”,截图如下。

140e8ec8f95bac36fab43e42f1d551d7.png

在此之前我已经在web.config中加入了maxRequestLength参数,让服务器可以接收大更大的文件。但是问题还是没有解决。不管这个数值改成多大,上传大于28MB的文件的时候,依旧会提示上面的错误。

ef212638cd8089f44c2968e7eb7573d6.png

为了解决这个诡异的问题,于是我又在网上搜索相关的资料,经过几个小时的搜索查找,最后终于找到了解决方案,问题总算是解决了。这个有效的解决方案很简单,我的程序的运行环境是iis7.5,只需要在web.config文件中加入如下代码就可以了。这串代码要加入到标签中间,再次测试程序,没有报错,而且文件顺利上传到服务器上了。

dd8974eb15ac8be6bd47b85902a5b7e5.png

问题就这样解决了。“maxAllowedContentLength”这个属性用来设置Http的Post类型请求可以提交的最大数据量。而“MaxRequestLength”属性是用来设置输入流的缓冲阈值的最大数值。

cc71ee33a5ed76d4acf7bace34a9b4ac.png

由于服务器为了防止用户将大量文件传递到该服务器而导致的拒绝服务攻击。这两个数值都设置的比较小。其中MaxRequestLength的默认值为4096 KB(即4 MB),最大值为2147483647 KB(即2 TB)。maxAllowedContentLength的默认值为30000000字节(即28.6 MB),最大值为4294967295字节(即4 GB)。所以我们需要完成大文件的上传,就需要将这两个数值修改到我们允许的数值范围内。

最后的一些思考,第一,现在终于明白了一开始那个诡异的问题。28.6M的限制其实就是第2个参数的最低数值。第二、如果我将这些数值改的很大,是不是会对服务器产生安全隐患。第三、目前主流的网盘和视频分享网站上传文件限制在2G以内估计也是因为这两个参数的限制,再大的文件就必须用客户端采用C/S的架构上传文件了。

把这经验和思考分享给大家,希望大家少走些弯路。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值