Dropzone: невозможно загрузить большие изображения на сервер (& gt; 5 млн.)

У меня есть следующие настройки в /etc/php/7.2/apache2/php.ini:

max_execution_time = 300
max_file_uploads = 20
memory_limit = 32M
post_max_size = 18M
upload_max_filesize = 20M

Однако, если я загружаю файл, размер которого превышает 5M, я получаю сообщение:

Указанные данные были неверными.

И когда я помещаю полный ответ об ошибке Dropzone, я также вижу это сообщение:

Файл не может быть больше 5000 килобайт.

Когда я меняю опцию Dropzone maxFilesize, он работает с цифрами ниже 5М, но когда он больше 5М, загрузка по-прежнему ограничена 5М.

Кроме того, у меня нет ограничений по размеру загрузки в моем файле .htaccess.

Откуда еще может возникнуть эта проблема?

=== РЕДАКТИРОВАТЬ # 1 ===

Ниже приведен результат df на сервере:

Filesystem     1K-blocks    Used Available Use% Mounted on
udev              989880       0    989880   0% /dev
tmpfs             200340    2884    197456   2% /run
/dev/sda1       10291200 3673732   6167924  38% /
tmpfs            1001696       0   1001696   0% /dev/shm
tmpfs               5120       0      5120   0% /run/lock
tmpfs            1001696       0   1001696   0% /sys/fs/cgroup

=== РЕДАКТИРОВАТЬ # 2 ===

Я сделал базовую страницу загрузки в своем проекте Laravel и смог загрузить большие файлы (> 5M), поэтому моя проблема должна исходить из Dropzone.

0

Решение

Задавать MaxFileSize в опциях dropzone:

 <script>
Dropzone.options.myDropzone = {
maxFilesize: 500,
}
</script>
0

Другие решения

Установить максимальный размер тела запроса в Apache внутри VirtualHost раздел:

#Set Max to 20MB
<Location />
LimitRequestBody 20971520
</Location>
0

Это может случиться с библиотеками, которые используют Linux tmp папка для хранения изображения, чтобы сделать любое преобразование к нему, например, изменение размера. Поэтому стоит попытаться изменить папку, которую использует PHP для хранения файлов tmp.

Для этого вам нужно создать папку, например /tmp-alt, Убедитесь, что эта папка имеет соответствующие разрешения для хранения в ней файлов. А затем перейдите к PHP.ini, /etc/php/7.2/apache2/php.ini в вашем случае измените / создайте следующее свойство:

upload_tmp_dir = /tmp-alt

После изменения файла перезапустите Apache и проверьте, работает ли загрузка файла.

0

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

public function store(Request $request)
{
$request->validate([
'file' => 'required|file|max:10000|mimes:' . $this->getAllowedFileTypes(),
'attachable_id' => 'required|integer',
'attachable_type' => 'required'
]);
...
}
0

Прежде всего: upload_max_filesize Настройки указывают, какой максимальный размер файла может иметь один загруженный файл. post_max_size однако сообщает, какой максимальный размер разрешен для всех файлов (а точнее для всех полей записей).

Если вы хотите разрешить загрузку 10 файлов по 10M, например, post_max_size должно быть не менее 10 * 10 = 100M.

Также убедитесь, что вы используете правильный INI-файл. Бежать phpinfo() в вашем веб-браузере и проверьте местоположение загруженного ini файлы. Возможно, вы редактируете свои файлы CLI ini, которые могут быть другим набором файлов.

Запустив phpinfo() Вы можете проверить свои настройки используются.

0
По вопросам рекламы [email protected]