• post提交/文件上传服务器修改


    第一步:修改在php5下POST文件大小的限制
     
    1.编修php.ini
     
    找到:max_execution_time = 30 ,这个是每个脚本运行的最长时间,单位秒,修改为:
    max_execution_time = 150
     
    找到:max_input_time = 60,这是每个脚本可以消耗的时间,单位也是秒,修改为:
    max_input_time = 300
     
    找到:memory_limit = 128M,这个是脚本运行最大消耗的内存,根据你的需求更改数值,这里修改为:
    memory_limit = 256M
     
    找到:post_max_size = 8M,表单提交最大数据为 8M,此项不是限制上传单个文件的大小,而是针对整个表单的提交数据进行限制的。限制范围包括表单提交的所有内容.例如:发表贴子时,贴子标题,内容,附件等…这里修改为:
    post_max_size = 20M
     
    找到:upload_max_filesize = 2M ,上载文件的最大许可大小 ,修改为:
    upload_max_filesize = 10M
     
    第二步: Apache环境中的档案上传大小控制
    修改位于Apahce目录下的httpd.conf
    添加下面内容
    LimitRequestBody 10485760    
    即10M=10*1024*1024,有的文章中提到应改为 600000000
     
    默认好像是0,无限制。
    重新启动apache,就可以在设置里看到你要的大小
     
    Linux 环境下的修改方法 ================================================================
    修改etc/php.ini
    找到 File Uploadsh区域修改以下几个参数: file_uploads = on ;是否允许通过HTTP上传文件的开关。默认为ON即是开 upload_tmp_dir ;文件上传至服务器上存储临时文件的地方,如果没指定就会用系统默认的临时文件夹(moodle可以不改)
    upload_max_filesize = 8m ;允许上传文件大小的最大值.
    找到 Data Handling区域,修改 post_max_size = 8m ;指通过表单POST给PHP的所能接收的最大值,包括表单里的所有值。默认为8M
    设上述四个参数后,上传小于8M的文件一般不成问题。但如果上传大于8M的文件,只还得设置以下参数:
    在Resource Limits 区域: max_execution_time = 600 ;每个PHP页面运行的最大时间值(秒),默认30秒 max_input_time = 600 ;每个PHP页面接收数据所需的最大时间,默认60秒 memory_limit = 8m ;每个PHP页面所吃掉的最大内存,默认8M

    我设置了以上不行,最后找到原因了,因为页面有太多的input.

    php.ini 文件里的  max_input_vars 默认值为 1000, 正常情况下够用,偶尔遇到我这种提交2000多个表单的情况还是比较少见的,不过,如果发现提交表单个数不全的情况,可以试试修改这个配置。

    用 phpinfo()查看。

    修改后重启php

    一篇文章:

    让人吃药的max_input_vars

    在某个项目中,每次提交都丢了部分数据,觉得非常奇怪,开始的时候以为是数据量过大,但后来又觉得不应该,因为如果是数据量过大,要么就是提交失败,要么就是直接报错啊?

    但事实上我每次提交都是成功的,但print_r($_POST)的时候,总丢了不少的数据,这是为什么呢?

    于是,将http头中的form内容全部copy出来,查看了一下,发现共是1200多行。打印POST的时候,只有1000行,咦,这不科学啊?少了200多行?

    google了一下,原来,PHP有这么一个配置:

    XML/HTML代码
    1. ; How many GET/POST/COOKIE input variables may be accepted  
    2. ; max_input_vars = 1000  

    而它的默认值 是1000,好吧,如果不是这次意外,根本不会发现项目中存在的这个BUG,毕竟要提交1000多个参数还是有难度的。顺便说一下:param[]=1&param[]=2是属于两个参数。所以如果你提交的项目中有多个数组,每个数组又有不少值的话,你就真的要小心了

    手贱,将max_input_vars 改成5000,问题解决。。

    ------

    回顾,这种因为偷懒的事情往往出现在哪里呢?

    1、ajax提交,不管三七二十一,将某堆数据 serializeArray(),jquery的这个功能,偶尔真心会让人吃药。

    2、日程管理和广告排期管理,这时候input的key确实 有可能会超过1000,但我还是建议先序列化再存到一个字段提交更安心 吧?

     http://www.th7.cn/Program/php/201409/285662.shtml

    http://www.jb51.net/article/31317.htm

  • 相关阅读:
    Python】ufunc 'subtract' did not contain a loop with signature matching types dtype
    AttributeError: module 'mediapipe.python.solutions.holistic' has no attribute 'UPPER_BODY_POSE_CONNECTIONS'
    __init__() got an unexpected keyword argument 'upper_body_only'
    解决:Every derived table must have its own alias
    VUE 利用 xlsx 和 filesaver 实现 Excel 表格的导入与导出
    Opencv基础运用
    Opencv图像处理
    Opencv图像简单操作
    js逆向破解之Hook Cookie
    更友好的格式化数据提取方案
  • 原文地址:https://www.cnblogs.com/youxin/p/4127291.html
Copyright © 2020-2023  润新知