Хостинг. Количество закачиваемых файлов за раз

itradestorez
1 год
0

Подскажите ставлю (upload|post)_max_size 5 MB то есть максимальный размер файла при загрузке 5 мегабайт, но если мы попытаемся загрузить 6 фотографий по 1 МБ то загрузка не удастся. Как сделать так, чтобы max_size был 5 МБ но при этом можно было загрузить 10 фото по 1 МБ за раз?

Сергей М.
1 год
0

Если 6 фото по 1мб загружаются одним запросом то это уже превышение лимита (upload|post)_max_size 5 MB
Нужно либо увеличить лимит, либо загружать каждое фото отдельным запросом.
Вообще лучше напишите в техподдержку, могут быть разные нюансы, в частности ModSecurity

itradestorez
1 год
0

max_file_uploads если указать 20, а max_size 1МБ то по идее мы можем загрузить 20 файлов по 1 мб нет? просто не найду где это меняется

в общем суть такая max_file_size надо сделать 5 МБ но сам запрос может быть 10 МБ (10 файлов по 1 МБ)

itradestorez
1 год
-1

сейчас проблема такая, я поставил (upload|post)_max_size 32 MB, тупые юзверы начинают грузить фото по 30 мегабайт за штуку. Окей я ставлю (upload|post)_max_size 5 MB, тогда другие юзверы начинают жаловаться что не могут загрузить 6 фото по 1 МБ за раз.

в общем получается тупик, либо разрешать (upload|post)_max_size 32 МБ тогда будут жеские фотки по 30 МБ загружать, либо ставить (upload|post)_max_size 5 МБ тогда за раз неполучится загрузить 6 фото по 1МБ. И так и так неподходит. Что делать?

LitvinenkoAndrey
1 год
0

.

itradestorez
1 год
0

скриптом я вспотею проверки ставить на зоопарк CMS от Wordpress до самописов, от админок до личных кабинетов юзверей, может как-то сервером можно нахлобучить этот момент?

Сергей М.
1 год
0

post_max_size - Устанавливает максимально допустимый размер данных, отправляемых методом POST. Это значение также влияет на загрузку файлов. Для загрузки больших файлов это значение должно быть больше значения директивы upload_max_filesize.
upload_max_filesize - Максимальный размер закачиваемого файла.
На хостинге эти 2 значения настраиваются одним параметром (upload|post)_max_size и они равны.

То есть чтобы решить Вашу задачу нужно просто поднять значение (upload|post)_max_size.

Сергей М.
1 год
0

скриптом я вспотею проверки ставить на зоопарк CMS от Wordpress до самописов, от админок до личных кабинетов юзверей, может как-то сервером можно нахлобучить этот момент? © itradestorez

Лимит размера отдельного файла нужно настраивать именно на уровне скрипта сайта. Так Вы сможете пользователю выводить ошибку при необходимости. Большинство CMS это умеет делать из коробки

itradestorez
1 год
0

поднимать (upload|post)_max_size. не вариант, они начинают тогда грузить фото по 30 мегабайт прям с зеркалки как есть без обработки

itradestorez
1 год
0

upload_max_filesize
max_file_uploads
вот это как-то можно отдельно настроить?

Сергей М.
1 год
0

Значение upload_max_filesize и post_max_size можете менять одним параметром.
Смена max_file_uploads в ПУ хостинга не предусмотрена

Сергей М.
1 год
0

Как ограничить размер файлов на стороне клиента и сервера можете посмотреть в документации https://www.php.net/manual/ru/features.file-upload.post-method.php

itradestorez
1 год
-1

да я даже прочитать это не осилю, не то чтобы делать на сотне сайтов

Сергей М.
1 год
0

Как вариант можете попробовать переопределить значение переменных на уровне скрипта

Сергей М.
1 год
0

ini_set( 'upload_max_size' , '20M' );
ini_set( 'post_max_size', '20M');
Но не уверен что это сработает, нужно тестировать.

toxi
1 год
0

поднимать (upload|post)_max_size. не вариант, они начинают тогда грузить фото по 30 мегабайт прям с зеркалки как есть без обработки © itradestorez

Можно поставить скрипт, который будет проверять размер файла, и если загруженный файл больше, к примеру, 2 МБ, то его удалять и сообщать пользователю о том, что файл слишком большой, даже не ссмотря на то, что (upload|post)_max_size = 30 МБ

Еще один вариант: поставить JS-скрипт и через него загружать файлы. Насколько я помню, можно сделать так, чтобы каждый файл обрабатывался отдельно (по очереди), а не грузил все файлы сразу. Тогда Вы уложитесь в лимит 2-5 Мб на каждый файл в отдельности.


Опять же - это нужно делать для каждого сайт отдельно. Универнальных настроек не получится сделать под все сайты сразу.

itradestorez
1 год
-1

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

rudenko
1 год
0

IMHO проблему пытаетесь решить не тем способом, поэтому не получается. Напишите простой скрипт, который будет сжимать фотографии до нужного размера и проходитесь им по директории. Пользователи будут счастливы - им сколько и какое хочешь качать можно и диск не будет переполнен. Копать в сторону команды convert с пакета ImageMagick, вроде он есть на серверах.

Для примера скрипт на bash (не проверял на функционирование)

for file in /home/user/site.com/www/img/*.jpg; do convert $file -quality 95 compressed-$file; done

itradestorez
1 год
0

ну этим скриптом вы просто качество сделали 95%, фотография 10 мб ужмется до 8 мб максимум. Это немного не то

rudenko
1 год
0

ну этим скриптом вы просто качество сделали 95%, фотография 10 мб ужмется до 8 мб максимум. Это немного не то © itradestorez


Это примерный скрипт, там можно что угодно делать и размер менять и качество. Тут вам видней какие параметры ставить в зависимости от того, с какой целью пользователи закачивают изображения. И по большей стороне уменьшать и по меньшей. http://www.imagemagick.org/Usage/resize/#shrink

itradestorez
1 год
0

было бы проще поставить лимит 2 МБ на фото но чтобы можно было заливать 10 штук за раз, то есть общий лимит запроса 20МБ но лимит файла 2МБ
это гораздо удобнее, кроме того пользователь заранее может обрезать фото как ему надо, а если начать срезать по ширине или высоте то на выходе можно обрезать нужные фрагменты и получить еще больше жалоб от пользователей что загрузил одно а получил другое

Сергей М.
1 год
0

Даже если Вы измените параметры php начнутся проблемы с загрузкой файлов пользователями. Потому что скрипт будет уходить в ошибку, а пользователь не будет понимать почему так. Как уже выше писал нужна проверка на стороне клиента и сервера с выводом сообщения клиенту.

itradestorez
1 год
0

хм. я думал будет какой-то alert, тогда да, придется шаманить со скриптами, что очень неудобно