Я хочу загрузить изображение с устройства Android на сервер узла. В настоящее время я конвертирую изображение в строку Base64 и передаю ее с помощью AsyncTask. Я не понимаю, что происходит на стороне сервера. Когда я записываю тело запроса в консоль, он отображает undefined.
Это код Android для преобразования изображения в строку Base64 и загрузки на сервер узла:
Это вывод консоли после получения данных изображения:
Это код сервера:
Что можно сделать, чтобы исправить ошибку? Любые другие предложения также приветствуются.
Не в комментарии, который ставится под сомнение, код входного файла также может быть файлом index.js
Вам необходимо настроить конфигурацию body-parsor, чтобы получить req.body
Если вы можете поделиться кодом файла ввода, то любой может легко предложить вам, что вам нужно сделать, чтобы получить данные.
Спасибо за ваш запрос. Я сделал, как вы просили.
Вам необходимо установить модуль body-parser
Установить
npm i -s body-parser
потом
Установите конфигурацию ниже перед маршрутом app.post
// support parsing of application/json type post data
app.use(bodyParser.json());
//support parsing of application/x-www-form-urlencoded post
app.use(bodyParser.urlencoded({
parameterLimit: 100000,
limit: '150mb',
extended: true
}));
Похоже, полезная нагрузка вашего запроса превышает 50 МБ, поэтому вам нужно знать, какой размер вы отправляете из пользовательского интерфейса, и соответствующим образом изменить лимит в бэкэнде. Скажем, если вы отправляете файл размером 100 МБ из Ui, измените лимит как минимум на 150 МБ, как это
Для указанного ниже кода будут получены данные. Но полученные данные не совпадают с данными, отправленными с устройства Android. Я думаю, что добавляются некоторые дополнительные данные. app.use (bodyParser.json ({предел: "3 МБ"})); app.use (bodyParser.urlencoded ({parameterLimit: 10000, extended: true})) app.post ('/ upload', function (req, resp) {console.info (req.body);});
Я не уверен в том, как работает Android, но с внутренней стороны именно так вам нужно с этим бороться. У вас нет доступа к необходимым данным с помощью req.body?
Для упомянутого выше кода я вижу данные. Но дело в том, что после фактических данных добавляется некоторый дополнительный контент. И я не могу понять, как избежать добавления этого дополнительного контента.
Хорошо, не уверен в этом, но я подозреваю, что код Android вносит эту модификацию.
Это конфигурация, которую вы должны сделать в бэкэнде, чтобы иметь дело с полезной нагрузкой запроса из Ui. Надеюсь, мой ответ помог решить вашу первоначальную проблему. Пожалуйста, проголосуйте за и примите ответ
@HarshalChavan Можете ли вы сказать, решило ли мое решение вашу проблему или нет?
Поделитесь затронутым кодом на стороне сервера. Снимок экрана командной строки, которым вы поделились, совершенно бесполезен