Передача base64 строки с сервера на клиент

140
26 августа 2019, 11:20

Есть приложение mvc. На странице есть <input id="fileLoader" type="file" />. В него пользователь загружает изображение. С помощью js на клиенте я перевожу картинку в base64 последовательность и отображаю в img. Далее передаю эту последовательность на сервер. И там перевожу в массив байт и записываю в базу. Теперь мне необходимо считать из базы массив байт и передать назад на страницу и отобразить в img. Но при попытке передать base64 строку на клиент вылетает ошибка. Вот мой код который делает всё вышеописанное: Клиент:

//Добавление нового автомобиля
    $('#modalWindow').on('click', '#btnConfirm', function () {
        $.ajax({
            type: "POST",
            url: "/Home/_AddNewCar",
            data: $('form').serialize() + "&base64img=" + $('#autoPicture').attr('src'),
            success: function (data) {
                $('#autoPicture').attr('src', data);
            },
            error: function (error) {
                alert(error.responseText);
            }
        });
    });
    //Изменение содержимого загружаемого файла
    $('#modalWindow').on('change', '#fileLoader', function () {
        ReadImageUrl(this);
    });
    function ReadImageUrl(input) {
        if (input.files && input.files[0]) {
            var reader = new FileReader();
            reader.readAsDataURL(input.files[0]);
            reader.onload = function (e) {
                $('#autoPicture').attr('src', e.target.result);
            }
        }
        else {
            $('#autoPicture').attr('src', '');
        }
    }

Контроллер:

[HttpPost]
        public String _AddNewCar(Car car, string base64img)
        {
            var base64arr = base64img.Split(',');
            byte[] picture = Convert.FromBase64String(base64arr[1]);
            string result = Convert.ToBase64String(picture);
            return result;
        }

В этом примере я не пишу в базу, а просто пытаюсь отправить сразу же назад base64 строку для более короткого примера. Вот ошибка которая вылетает на консоле клиента:

Failed to load resource: the server responded with a status of 414 (Request-URI Too Long)

Подскажите пожалуйста как можно передать изображение из контроллера на клиент? Может не обязательно в виде base64?

READ ALSO
Как плавно переместить часть блока за границы родительского контейнера? [закрыт]

Как плавно переместить часть блока за границы родительского контейнера? [закрыт]

Как плавно переместить блок влево за границу родительского контейнера и при этом скрыть перемещенную часть?

144
Борьба со спамом

Борьба со спамом

Вот такая задача - борьба со спамомКапча в форме взламывается, и кто-то обходит систему защиты обороны почтовых сообщений

132
почему не добавляется класс?

почему не добавляется класс?

как добавить класс span,который находится в свою очередь в input,у кого есть атребут чекед?

130
Сортировка текcтового файла и вывод результата сортировки в новый файл C#

Сортировка текcтового файла и вывод результата сортировки в новый файл C#

Есть текстовый файл с именами , кличками и фамилиямиКаждое имя, фамилия, отчество начинаются с новой строки

135