Вопросы

Как я могу отправить запрос на публикацию с изображением base64?

Я делаю компонент загрузки изображений в vue js с настраиваемой опцией обрезки. Обрезанная версия сохраняется в моем состоянии как строка base64. Это оно:

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAHgCAYAAAB91L6VAAAgAElEQVR4Xu2dCdh+1dT/v3+UDA1KMiQhlCEylDGZSqbI0Jy8JMmYUEloRFIpVJK5EpL0ilJmr6IQKiXzrCKESP2v72vfb8/z/O7hnH2fc/be53z2df2uoj1+9vrd6+y1117r/4kCAQhAAAIQgEDnBP5f5yMyIAQgAAEIQAACQgEjBBCAAAQgAIEEBFDACaAzJAQgAAEIQAAFjAxAAAIQgAAEEhBAASeAzpAQgAAEIAABFDAyAAEIQAACEEhAAAWcADpDQgACEIAABFDAyAAEIAABCEAgAQEUcALoDAkBCEAAAhBAASMDEIAABCAAgQQEUMAJoDMkBCAAAQhAAAWMDEAAAhCAAAQSEEABJ4DOkBCAAAQgAAEUMDIAAQhAAAIQSEAABZwAOkNCAAIQgAAEUMDIAAQgAAEIQCABARRwAugMCQEIQAACEEABIwMQgAAEIACBBARQwAmgMyQEIAABCEAABYwMQAACEIAABBIQQAEngM6QEIAABCAAARQwMgABCEAAAhBIQAAFnAA6Q0IAAhCAAARQwMgABCAAAQhAIAEBFHAC6AwJAQhAAAIQQAEjAxCAAAQgAIEEBFDACaAzJAQgAAEIQAAFjAxAAAIQgAAEEhBAASeAzpAQgAAEIAABFDAyAAEIQAACEEhAAAWcADpDQgACEIAABFDAyAAEIAABCEAgAQEUcALoDAkBCEAAAhBAASMDEIAABCAAgQQEUMAJoDMkBCAAAQhAAA....

теперь я пытаюсь отправить это изображение на свой js-сервер node с помощью API почтового запроса. В Postman я пишу тело, выбирая raw и json в этом теле следующим образом:

{
        "image" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAHgCAYAAAB91L6VAAAgAElEQVR4Xu2dCdh+1dT/v3+UDA1KMiQhlCEylDGZSqbI0Jy8JMmYUEloRFIpVJK5EpL0ilJmr6IQKiXzrCKESP2v72vfb8/z/O7hnH2fc/be53z2df2uoj1+9vrd6+y1117r/4kCAQhAAAIQgEDnBP5f5yMyIAQgAAEIQAACQgEjBBCAAAQgAIEEBFDACaAzJAQgAAEIQAAFjAxAAAIQgAAEEhBAASeAzpAQgAAEIAABFDAyAAEIQAACEEhAAAWcADpDQgACEIAABFDAyAAEIAABCEAgAQEUcALoDAkBCEAAAhBAASMDEIAABCAAgQQEUMAJoDMkBCAAAQhAAAWMDEAAAhCAAAQSEEABJ4DOkBCAAAQgAAEUMDIAAQhAAAIQSEAABZwAOkNCAAIQgAAEUMDIAAQgAAEIQCABARRwAugMCQEIQAACEEABIwMQgAAEIACBBARQwAmgMyQEIAABCEAABYwMQAACEIAABBIQQAEngM6QEIAABCAAARQwMgABCEAAAhBIQAAFnAA6Q0IAAhCAAARQwMgABCAAAQhAIAEBFHAC6AwJAQhAAAIQQAEjAxCAAAQgAIEEBFDACaAzJAQgAAEIQAAFjAxAAAIQgAAEEhBAASeAzpAQgAAEIAABFDAyAAEIQAACEEhAAAWcADpDQgACEIAABFDAyAAEIAABCEAgAQEUcALoDAkBCEAAAhBAASMDEIAABCAAgQQEUMAJoDMkBCAAAQhAAAWMDEAAAhCAAAQSEEABJ4DOkBCAAAQgAAEUMDIAAQhAAAIQSEAABZwAOkNCAAIQgAAEUMDIAAQgAAEIQCABARRwAugMCQEIQAACEEABIwMQgAAEIACBBARQwAmgMyQEIAABCEAABYwMQAACEIAABBIQQAEngM6QEIAABCAAARQwMgABCEAAAhBIQAAFnAA6Q0IAAhCAAARQwMgABCAAAQhAIAEBFHAC6AwJAQhAAAIQQAEjAxCA.....
}

Запрос не обнаруживает эти данные json в теле и возвращает ошибку:

{
    "image": "\"image\" is required"
}

Также попробовал метод отправки form_data таким образом:

var axios = require('axios');
      var FormData = require('form-data');
      // var fs = require('fs');
      var data = new FormData();
      data.append('image', formdata.logoFinalImage);

      var config = {
        method: 'post',
        url: myurl,
        headers: {
          'Authorization': this.state.token,
          'Content-Type': 'application/json'
        },
        data: data
      };

      axios(config)
        .then(function (response) {
          console.log(JSON.stringify(response.data));
        })
        .catch(function (error) {
          console.log(error);
        });

Та же проблема. Как я могу отправить окончательную обрезанную версию в конечную точку api узла?

Я думаю, что вы не создаете URL-адрес base64, это просто метаданные. Вы можете проверить эту ссылку: stackoverflow.com/questions/26360403/   —  person adeab    schedule 26.01.2021

не могли бы вы добавить снимок экрана почтальона, как вы его добавляете, и делаете ли ваш продукт, кроме данных в виде формы или тела json?   —  person adeab    schedule 26.01.2021

Читать:
Создание Flask API для моделей машинного обучения

@PD Скрыть тело JSON. Вот SS: ibb.co/g4bTDMp   —  person adeab    schedule 26.01.2021

@ApoorvaChikara Я использую эту строку для предварительного просмотра изображения в моем интерфейсе vue js. И эта строка создается с помощью функции readAsDataURL (file). Что еще нужно сделать, чтобы сделать его base64?   —  person adeab    schedule 26.01.2021

@PDHide также пробовал использовать формат данных. Сообщение обновлено соответственно   —  person adeab    schedule 26.01.2021

У вас получится заставить его работать в почтальоне?   —  person adeab    schedule 26.01.2021

@PDHide нет. в почтальоне, когда я загружаю файл в формате formdata, он работает. но когда я пытаюсь заменить функцию fs.createStream моей строкой base64, она не работает. Кроме того, чтобы проверить, действительно ли моя строка base64 в порядке, я вставил эту строку в онлайн-конвертер base64 в изображение, и его изображение отлично генерируется.   —  person adeab    schedule 26.01.2021

Похожие записи

Как я могу вызвать функцию RefreshCache с помощью Lambda?

admin

Пакет SDK для VSCode .NET Core не может быть найден

admin

phpMyAdmin показывает 404 Not Found (Ubuntu 18.04 Nginx)

admin

По крайней мере, один элемент ресурсов должен быть определен ошибка в формировании облака ec2

admin

Ошибка установки PySide с командой python setup.py egg_info не удалось с кодом ошибки 1

admin

Ошибка сегментации при вызове функции сборки x86 из программы C

admin