Частичные данные в переменной $ _FILES - PullRequest
0 голосов
/ 12 февраля 2019

У нас есть экран администратора, на котором пользователь может редактировать большой объем данных, и, кроме того, есть несколько десятков входных данных типа file.

В PHP каждый входной файл вводится в суперглобальную переменную, называемую * 1003.*.

В моей локальной среде разработки все работает отлично, проблема в том, что при подготовке мы получаем частичные данные.

Если я сохраняю те же данные в промежуточной и локальной, я получаютолько локальные полные данные, которые разрешаются тем, что когда пользователь пытается загрузить изображение, я даже не вижу его в переменной $_FILES.

Так что мой вопрос: каково ограничение, вызывающее эту проблему?в стадии подготовки?

У меня более или менее одинаковые настройки php.ini (max_post_size, max_upload_size и т. д.), и у меня нет прав на редактирование настроек в стадии подготовки.

Характеристики в подготовке

  • Версия сервера: Apache / 2.2.15
  • PHP 5.3.29
  • Akamai CDN

Редактировать

Выход $_FILES для запроса Jon Stirling:Я закодировал его в JSON, чтобы он был более читабельным.

Постановочный вывод:

{
  "user_guide": {
    "name": "",
    "type": "",
    "tmp_name": "",
    "error": 4,
    "size": 0
  },
  "instructionsData": {
    "name": {
      "102": {
        "icon": "",
        "icon_inverted": "",
        "instructionData": {
          "1395": {
            "image": ""
          },
          "1398": {
            "image": ""
          },
          "1401": {
            "image": ""
          },
          "1404": {
            "image": ""
          }
        }
      },
      "103": {
        "icon": "",
        "icon_inverted": "",
        "instructionData": {
          "1405": {
            "image": ""
          },
          "1408": {
            "image": ""
          },
          "1411": {
            "image": ""
          },
          "1414": {
            "image": ""
          },
          "1417": {
            "image": ""
          },
          "1420": {
            "image": ""
          },
          "1423": {
            "image": ""
          },
          "1426": {
            "image": ""
          }
        }
      },
      "105": {
        "icon": "",
        "icon_inverted": "",
        "instructionData": {
          "1428": {
            "image": ""
          }
        }
      }
    },
    "type": {
      "102": {
        "icon": "",
        "icon_inverted": "",
        "instructionData": {
          "1395": {
            "image": ""
          },
          "1398": {
            "image": ""
          },
          "1401": {
            "image": ""
          },
          "1404": {
            "image": ""
          }
        }
      },
      "103": {
        "icon": "",
        "icon_inverted": "",
        "instructionData": {
          "1405": {
            "image": ""
          },
          "1408": {
            "image": ""
          },
          "1411": {
            "image": ""
          },
          "1414": {
            "image": ""
          },
          "1417": {
            "image": ""
          },
          "1420": {
            "image": ""
          },
          "1423": {
            "image": ""
          },
          "1426": {
            "image": ""
          }
        }
      },
      "105": {
        "icon": "",
        "icon_inverted": "",
        "instructionData": {
          "1428": {
            "image": ""
          }
        }
      }
    },
    "tmp_name": {
      "102": {
        "icon": "",
        "icon_inverted": "",
        "instructionData": {
          "1395": {
            "image": ""
          },
          "1398": {
            "image": ""
          },
          "1401": {
            "image": ""
          },
          "1404": {
            "image": ""
          }
        }
      },
      "103": {
        "icon": "",
        "icon_inverted": "",
        "instructionData": {
          "1405": {
            "image": ""
          },
          "1408": {
            "image": ""
          },
          "1411": {
            "image": ""
          },
          "1414": {
            "image": ""
          },
          "1417": {
            "image": ""
          },
          "1420": {
            "image": ""
          },
          "1423": {
            "image": ""
          },
          "1426": {
            "image": ""
          }
        }
      },
      "105": {
        "icon": "",
        "icon_inverted": "",
        "instructionData": {
          "1428": {
            "image": ""
          }
        }
      }
    },
    "error": {
      "102": {
        "icon": 4,
        "icon_inverted": 4,
        "instructionData": {
          "1395": {
            "image": 4
          },
          "1398": {
            "image": 4
          },
          "1401": {
            "image": 4
          },
          "1404": {
            "image": 4
          }
        }
      },
      "103": {
        "icon": 4,
        "icon_inverted": 4,
        "instructionData": {
          "1405": {
            "image": 4
          },
          "1408": {
            "image": 4
          },
          "1411": {
            "image": 4
          },
          "1414": {
            "image": 4
          },
          "1417": {
            "image": 4
          },
          "1420": {
            "image": 4
          },
          "1423": {
            "image": 4
          },
          "1426": {
            "image": 4
          }
        }
      },
      "105": {
        "icon": 4,
        "icon_inverted": 4,
        "instructionData": {
          "1428": {
            "image": 4
          }
        }
      }
    },
    "size": {
      "102": {
        "icon": 0,
        "icon_inverted": 0,
        "instructionData": {
          "1395": {
            "image": 0
          },
          "1398": {
            "image": 0
          },
          "1401": {
            "image": 0
          },
          "1404": {
            "image": 0
          }
        }
      },
      "103": {
        "icon": 0,
        "icon_inverted": 0,
        "instructionData": {
          "1405": {
            "image": 0
          },
          "1408": {
            "image": 0
          },
          "1411": {
            "image": 0
          },
          "1414": {
            "image": 0
          },
          "1417": {
            "image": 0
          },
          "1420": {
            "image": 0
          },
          "1423": {
            "image": 0
          },
          "1426": {
            "image": 0
          }
        }
      },
      "105": {
        "icon": 0,
        "icon_inverted": 0,
        "instructionData": {
          "1428": {
            "image": 0
          }
        }
      }
    }
  }
}

Локальный выход:

{
  "user_guide": {
    "name": "",
    "type": "",
    "tmp_name": "",
    "error": 4,
    "size": 0
  },
  "instructionsData": {
    "name": {
      "102": {
        "icon": "",
        "icon_inverted": "",
        "instructionData": {
          "1395": {
            "image": ""
          },
          "1398": {
            "image": ""
          },
          "1401": {
            "image": ""
          },
          "1404": {
            "image": ""
          }
        }
      },
      "103": {
        "icon": "",
        "icon_inverted": "",
        "instructionData": {
          "1405": {
            "image": ""
          },
          "1408": {
            "image": ""
          },
          "1411": {
            "image": ""
          },
          "1414": {
            "image": ""
          },
          "1417": {
            "image": ""
          },
          "1420": {
            "image": ""
          },
          "1423": {
            "image": ""
          },
          "1426": {
            "image": ""
          }
        }
      },
      "105": {
        "icon": "",
        "icon_inverted": "",
        "instructionData": {
          "1428": {
            "image": ""
          },
          "1431": {
            "image": ""
          },
          "1434": {
            "image": ""
          },
          "1437": {
            "image": ""
          }
        }
      },
      "106": {
        "icon": "",
        "icon_inverted": "",
        "instructionData": {
          "1438": {
            "image": ""
          },
          "1441": {
            "image": ""
          },
          "1444": {
            "image": ""
          }
        }
      },
      "109": {
        "icon": "",
        "icon_inverted": "",
        "instructionData": {
          "1447": {
            "image": ""
          },
          "1450": {
            "image": ""
          },
          "1453": {
            "image": ""
          },
          "1456": {
            "image": ""
          },
          "1459": {
            "image": ""
          },
          "1462": {
            "image": ""
          },
          "1465": {
            "image": ""
          },
          "1468": {
            "image": ""
          },
          "1471": {
            "image": ""
          },
          "1474": {
            "image": ""
          },
          "1477": {
            "image": ""
          },
          "1480": {
            "image": ""
          },
          "1483": {
            "image": ""
          },
          "1486": {
            "image": ""
          },
          "1489": {
            "image": ""
          },
          "1492": {
            "image": ""
          },
          "1495": {
            "image": ""
          },
          "1498": {
            "image": ""
          },
          "1501": {
            "image": ""
          },
          "1504": {
            "image": ""
          },
          "1507": {
            "image": ""
          }
        }
      },
      ....

1 Ответ

0 голосов
/ 12 февраля 2019

Я обнаружил, что в рабочей области был модуль, который называется suhosin, по-видимому, он имеет больше ограничений и ограничений безопасности.

Чтобы найти проблему, которую я добавил в php.ini:

suhosin.simulation = 1
suhosin.log.file = 511
suhosin.log.file.name = /tmp/suhosin-alert.log

Это привело меня к ошибке ALERT-SIMULATION - configured fileupload limit exceeded - file dropped, после исследования мне пришлось обновить эти свойства в php.ini:

max_file_uploads = 300
suhosin.upload.max_uploads=300

И тогда все данные появились правильно

...