post_max_size и upload_max_filesize для каждого конкретного случая - PullRequest
2 голосов
/ 26 августа 2009

Используя PHP загрузчик, и вам было интересно, есть ли способ переопределить значения по умолчанию в php.ini для post_max_size и upload_max_filesize в конкретном скрипте?

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

Ответы [ 3 ]

1 голос
/ 26 августа 2009

Вы должны быть в состоянии сделать это через файл .htaccess. Допустим, вы хотите разрешить загрузку 10 Мб для области администратора и 2 для публичной стороны. Я бы установил значение по умолчанию (в php.ini) равным 2 Мб, а затем в административной области добавил бы в файл htaccess:

php_flag upload_max_filesize 10M

Редактировать
Это предназначено для работы на уровне каталогов - я предполагаю, что все ваши страницы администратора запускаются, скажем, с mydomain.com/admin/ с физической папкой / admin в вашем webroot (куда вы помещаете файл .htaccess)

0 голосов
/ 26 августа 2009

Попробуйте использовать функцию php ini_set

Таким образом вы сможете переопределить значения по умолчанию в файле php.ini. Просто убедитесь, что вы вызываете его перед выводом любой страницы.

0 голосов
/ 26 августа 2009

Изменение этого значения для пользователя невозможно, если вы не пишете в файл .htaccess для каждого посещения.

Почему бы вам просто не разрешить загрузку и сбросить ее, если она слишком большая?

Я нашел это , но я не доверяю этому, поскольку HTML не имеет представления о том, что вы делаете с этим вводом.

РЕДАКТИРОВАТЬ: В основном, поскольку Apache - это то, что обрабатывает фактическую физическую передачу файла, вам нужно, чтобы Apache знал о любых ограничениях, прежде чем пользователь отправит форму. Поскольку HTML не имеет к этому никакого отношения, вы не можете установить его там, а PHP полезен только тогда, когда файл фактически находится на сервере, вам нужно проверять его после его загрузки. Извините, я понял, что мой первый ответ был немного расплывчатым. Надеюсь, это поможет немного больше.

...