Мне нужно использовать python для отправки изображения через сообщение, а затем загрузить его на стороне узла node.js. КодПолучить изображение, отправленное с сообщения в node.js
Python:
import requests
from PIL import Image
import json
url = 'http://127.0.0.1:8080/ay'
files = {'file': open('image.jpg', 'rb')}
r = requests.post(url, data = files)
Node.js код:
var app = express();
app.use(bodyparser.json({ limit: '50mb' }));
app.use(bodyparser.urlencoded({ limit: '50mb', extended: true }));
app.post('/ay', function(req, res) {
var base64Data = req.body.file
require("fs").writeFile("out.png", base64Data, 'base64', function(err) {
console.log(err);
});
res.send('done');
});
Но я не могу загрузить файл правильно на сервере, так что я задаюсь вопросом, какой формат питон использует для открывать изображения и как я могу исправить код node.js, чтобы он мог правильно загрузить изображение.
Редактировать: было несколько проблем с кодом, я пытаюсь использовать multer сейчас, но не могу заставить его работать.
Python код:
import requests
url = 'http://127.0.0.1:8080/ay'
files = {'file': open('image.jpg', 'rb')}
r = requests.post(url, files = files)
Node.js код:
var express = require('express');
var multer = require('multer')
var upload = multer({ dest: 'uploads/' })
var app = express();
app.post('/ay', upload.single('avatar'), function (req, res, next) {
console.log(req.file)
res.send("done");
});
app.post('/ay', upload.array('photos', 12), function (req, res, next) {
console.log(req.files)
res.send("done");
});
Я попытался как upload.single и upload.array, но ни работы.
Включили вы промежуточное программное обеспечение для обработки данных POST в узле? – adeneo
Yup! Я только что редактировал свой код, чтобы показать его. Я получаю изображение на стороне сервера, но я не знаю, как он закодирован, поэтому я не могу его декодировать. – user1883614
bodyParser не работает с файлами, он говорит так прямо в верхней части [документации] (https://github.com/expressjs/body-parser). Вам нужен multer, busboy или один из тех, кто поддерживает файлы. Кроме того, файлы должны быть отправлены как «multipart/form» с правильными ключами, а не с JSON. – adeneo