Еще один способ добавить изображение в базу данных с помощью Cloud Function для отслеживания каждого загруженного изображения и сохранения его в базе данных.
exports.fileUploaded = functions.storage.object().onChange(event => {
const object = event.data; // the object that was just uploaded
const contentType = event.data.contentType; // This is the image Mimme type\
// Exit if this is triggered on a file that is not an image.
if (!contentType.startsWith('image/')) {
console.log('This is not an image.');
return null;
}
// Get the Signed URLs for the thumbnail and original image.
const config = {
action: 'read',
expires: '03-01-2500'
};
const bucket = gcs.bucket(event.data.bucket);
const filePath = event.data.name;
const file = bucket.file(filePath);
file.getSignedUrl(config, function(err, fileURL) {
console.log(fileURL);
admin.database().ref('images').push({
src: fileURL
});
});
});
Полный код здесь: https: //gist.github .com / bossly / fb03686f2cb1699c2717a0359880cf84
Это зависит от конфигурации сервера. Если вы работаете с PHP под Linux или аналогичным, вы можете управлять им с помощью файла конфигурации .htaccess, например:
#set max post size
php_value post_max_size 20M
И, да, я лично могу подтвердить, что это работает: )
Если вы используете IIS, я не знаю, как вы установили это значение.
Как заметил Дэвид, в большинстве случаев я бы пошел с КБ.
php_value post_max_size 2KB
Примечание: моя форма проста, всего несколько текстовых полей, недолговечный текст.
Кроме того, в файле PHP.INI есть параметр:
max_input_vars
, который в моей версии PHP: 5.4.16 по умолчанию - 1000.
Из руководства: «Сколько входных переменных может быть принято (предел применяется к $ _GET, $ _POST и $ _COOKIE суперглобальным отдельно)»
Ref .: http://www.php.net/manual/ ан / info.configuration.php # ini.max-ввода-вары
Вы можете опубликовать большой объем данных, установив переменную php.ini: max_input_vars
Размер по умолчанию этой переменной - 1000, но если вы хотите отправить большой объем данных, вы должны соответственно увеличить размер. Если вы не можете установить размер из ini_set, вам нужно сделать это через htaccess
или внести изменения в файл php.ini напрямую.
max_input_vars 2500
memory_limit 256M
До http-сервера решать, есть ли предел. Продукт, над которым я работаю, позволяет администратору настроить лимит.
URL-адрес запроса (GET и POST) может быть ограничен как браузером, так и сервером - обычно безопасный размер составляет 2 КБ, поскольку почти нет браузеров или серверов, которые используют меньший предел.
Тело запроса (POST) обычно * ограничено сервером на основе размера байта, чтобы предотвратить тип атаки DoS (обратите внимание, что это означает, что экранирование символов может увеличить размер байта тела). Наиболее распространенный параметр сервера - 10 МБ, хотя все популярные серверы позволяют увеличить или уменьшить его с помощью файла настроек или панели.
* Некоторые исключения существуют со старым мобильным телефоном или другими браузерами небольших устройств - в этих случаях это больше функция кучного пространства, зарезервированного для этой цели на устройстве, а затем что-нибудь еще.
Одно из лучших решений для этого, вы не используете несколько или более 1000 полей ввода. Вы можете объединить несколько входов с любым специальным символом, например. @
.
См. это:
<input type='text' name='hs1' id='hs1'>
<input type='text' name='hs2' id='hs2'>
<input type='text' name='hs3' id='hs3'>
<input type='text' name='hs4' id='hs4'>
<input type='text' name='hs5' id='hs5'>
<input type='hidden' name='hd' id='hd'>
Используя любой скрипт (JavaScript или JScript),
document.getElementById("hd").value = document.getElementById("hs1").value+"@"+document.getElementById("hs2").value+"@"+document.getElementById("hs3").value+"@"+document.getElementById("hs4").value+"@"+document.getElementById("hs5").value
При этом вы обойдете max_input_vars
проблема. Если вы увеличиваете max_input_vars
в файле php.ini, что вредно для сервера, потому что оно использует больше кэш-памяти сервера, и иногда это может привести к сбою сервера.
По умолчанию запрос на отправку имеет максимальный размер 8 МБ. Но вы можете изменить его в соответствии с вашими требованиями. Модификацию можно выполнить, открыв файл php.ini (настройка конфигурации php).
Найти
post_max_size=8M //for me, that was on line:771
заменить 8 в соответствии с вашими требованиями.