PHP - Максимальное общее количество загружает размер?

Я думаю, что у вас есть та же проблема, что и в , этот вопрос .

@Relequestual прав в том, что вам нужно ключевое слово properties вокруг вашей выноски SDK. Но для того, что вы хотите сделать, вам нужно реорганизоваться.

Подсхемы работают только на своем уровне в данном случае, а не в корне.

Рассмотрим эту схему для простого экземпляра объекта JSON, содержащего свойство one и two:

{
  "properties": {
    "one": {
      "enum": ["yes", "no", "maybe"]
    },
    "two": {
      "if": {
        "properties": {
          "one": {"const": "yes"}
        }
      },
      "then": {
        ...       // do some assertions on the two property here
      },
      "else": {
        ...
      }
    }
  }
}

Ключевое слово if в свойстве two может учитывать только часть экземпляр в свойстве two (то есть значение two). Он не смотрит на корень экземпляра, поэтому он вообще не может видеть свойство one.

Чтобы подсхема в подсхеме свойства two могла видеть свойство one в экземпляре, необходимо переместить if за пределы ключевого слова properties.

{
  "if": {
    "properties": {
      "one": {"const" : "yes"}
    }
  },
  "then": {
    ...       // do some assertions on the two property here
  },
  "else": {
    ...       // assert two here, or have another if/then/else structure to test the one property some more
  }
}

Для двух возможных значений one это довольно хорошо. Даже три возможных значения неплохо. Однако с увеличением возможных значений one увеличивается и вложенность if с, что может сделать вашу схему ужасной для чтения (и, возможно, сделать проверку медленнее).

Вместо использования конструкции if / then / else я предлагаю использовать anyOf или oneOf, где каждая подсхема представляет действительное состояние для экземпляра, учитывая различные значения one .

{
  "oneOf": [
    {
      "properties": {
        "one": {"const": "yes"},
        "two": ...         // do some assertions on the two property here
      }
    },
    {
      "properties": {
        "one": {"const": "no"},
        "two": ...         // do some assertions on the two property here
      }
    },
    {
      "properties": {
        "one": {"const": "maybe"},
        "two": ...         // do some assertions on the two property here
      }
    }
  ]
}

На мой взгляд, это намного чище.

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

6
задан Luc M 7 April 2009 в 22:24
поделиться

6 ответов

Да. Существуют (насколько я могу помнить), приблизительно три параметра конфигурации, которые будут влиять на ограничения размера загрузки:

  • upload_max_filesize, который устанавливает верхний предел для размера загруженных файлов
  • post_max_size, который ограничивает общий размер отправленных данных, включая данные файла
  • max_input_time, который ограничивает отрезок времени, сценарию позволяют обработать входные данные, включая отправленные значения

upload_max_filesize предел на каждый отдельный файл; однако, max_post_size верхний предел всего запроса, который включает все загруженные файлы.

Различным средам хостинга установят эти значения по-другому, которые могут влиять на Ваши способности после развертывания.

21
ответ дан 8 December 2019 в 02:35
поделиться

Пределы загрузки устанавливаются через php ini. Можно попробовать, получают их как так:

$post_max_size = ini_get('post_max_size');
$upload_max_filesize = ini_get('upload_max_filesize');
6
ответ дан 8 December 2019 в 02:35
поделиться

Это - установка в php.ini. Можно посмотреть в выводе php информации для маркированного "upload_max_filesize" поля. Для получения php информационной страницы создайте php файл со следующим кодом:

<?php phpinfo(); ?>

Это сообщение по php.net дает Вам пример кода для получения той информации, и остальная часть страницы является ценным кладом php параметров конфигурации.

4
ответ дан 8 December 2019 в 02:35
поделиться

Существует набор настроек PHP, ограничивающих процесс загрузки:

  • file_uploads
  • upload_max_filesize
  • max_input_time
  • memory_limit
  • max_execution_time
  • post_max_size

Я предложил бы читать эту страницу: http://www.radinks.com/upload/config.php

В то время как это верно, что многие из них не ограничивают размер загрузки, они действительно помещают ограничение на процесс загрузки - например, если предел памяти будет слишком низким, то у Вас будут проблемы при загрузке больших файлов, которые должны остаться в памяти в течение небольшого промежутка времени.

4
ответ дан 8 December 2019 в 02:35
поделиться

директива php.ini "post_max_size" должна ограничить, сколько данных можно отправить в единственном POST. если Вы отправляете 15 изображений в одном сообщении, я вполне уверен, который все еще считают одним POST. Таким образом, могло бы быть хорошо проверить это значение перед вводом в эксплуатацию.

0
ответ дан 8 December 2019 в 02:35
поделиться

Это было бы необычно, но конечно, согласовало бы с любой хостинговой компанией, которую Вы выбираете. Если бы был предел, то это, конечно, было бы выше, чем 30 МБ.

0
ответ дан 8 December 2019 в 02:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: