Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Мультизагрузка картинок (https://javascript.ru/forum/misc/72146-multizagruzka-kartinok.html)

laimas 12.01.2018 10:45

Цитата:

Сообщение от Nexus
проверить размер файла перед сохранением все же можно.

Уже поздно, он уже на сервере и в тройном размере.

рони 12.01.2018 10:49

Цитата:

Сообщение от Nexus
Т.е. данные будут как в base64 в src preview, так и в объекте FormData единовременно?

не знаю

Nexus 12.01.2018 11:00

laimas, в php есть директива "post_max_size".
Правда как поступит сервер, если клиент превысит этот лимит я не знаю.

LingVist 12.01.2018 11:01

Nexus, предложенный Вами вариант также не работает, передается пустой массив.
В обработчике РНР для загрузки файлов в папку я использую цикл
$array = array();
        
        foreach ($request->file() as $file) {
            foreach ($file as $img) {
                $img->move(public_path().'/'.env('THEME').'/images/estate/'.$upload_dir, date('dmY_Hi').'_'.$img->getClientOriginalName());
                $img = date('dmY_Hi').'_'.$img->getClientOriginalName();	
                
                array_push($array, $img);
                }
            }


В массив $array добавляются имена изображений, потом закидываю их в БД одной строкой.

Может подобным образом можно создать массив и с самими картинками? Только как это сделать технически, я не знаю

Nexus 12.01.2018 11:02

LingVist, вы имя инпуту указали?

upd.
Цитата:

Сообщение от LingVist
foreach ($request->file() as $file) {
    foreach ($file as $img) {

А вы уверены, что клиент прислал изображения? :)

laimas 12.01.2018 11:04

Цитата:

Сообщение от Nexus
в php есть директива "post_max_size"

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

Nexus 12.01.2018 11:14

laimas,
Цитата:

Сообщение от laimas
Уже поздно, он уже на сервере и в тройном размере.

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

laimas 12.01.2018 11:22

Цитата:

Сообщение от Nexus
Вы имели ввиду, что серверу может не хватить памяти для обработки запроса из-за чрезмерного размера изображения.

Я имел ввиду ограничение, а по каким соображениям оно накладывается, это резиновый вопрос. )

LingVist 12.01.2018 11:28

Цитата:

Сообщение от Nexus (Сообщение 474963)
LingVist, вы имя инпуту указали?

А вы уверены, что клиент прислал изображения? :)

Да, с инпутом промашка вышла. Сейчас все работает нормально, большое Вам спасибо!

Alexandroppolus 12.01.2018 11:35

FileReader здесь не нужен. Правильнее использовать URL.createObjectURL, и не забыть про URL.revokeObjectURL.

Итого, никакого base64 тут не надо. Т.е. не будет копии файла в оперативной памяти.

Все выбираемые файлы складывать в массив, потом из этого массива добавить в FormData перед отправкой.


Часовой пояс GMT +3, время: 11:49.