Не получить изображение из данных UDPAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Не получить изображение из данных UDP

Сообщение Anonymous »

Я отправляю изображение на свой сервер, который может отображать изображение, но я отправляю изображение правильно со стороны клиента и правильно получаю путь к файлу со стороны сервера, но изображение не отображается
Вот мой клиентский код отправки изображений

Код: Выделить всё

const pickImage = async () => {
const result = await launchImageLibrary({
mediaType: 'photo',
quality: 1,
selectionLimit: 1,
includeBase64: true,
});
if (!result.didCancel && result.assets) {
setImageUri(result.assets[0].uri);
console.log('result.assets[0].base64', result.assets[0].uri);
const base64Image = result.assets[0].base64;

if (base64Image) {
const totalChunks = Math.ceil(base64Image.length / CHUNK_SIZE);
// const imageBuffer = Buffer.from(result.assets[0].base64, 'base64');
for (let i = 0; i < totalChunks; i++) {
const start = i * CHUNK_SIZE;
const end = Math.min(start + CHUNK_SIZE, base64Image.length);
const chunk = base64Image.substring(start, end);

const data = {
index: i,
totalChunks: totalChunks,
imageData: chunk,
};

client.send(
Buffer.from(JSON.stringify(data)),
undefined,
undefined,
8888,
ipAddress,
error => {
if (error) {
Alert.alert('Something Went Wrong!', error.message);
} else {
console.log(
`Chunk ${i + 1}/${totalChunks} sent successfully to IP:`,
ipAddress,
);
}
},
);
}
}
}
};
и Вот мой серверный код получения изображений

Код: Выделить всё

const startServer = async () => {
server.on('error', err => {
console.log(`Socket error: ${err}`);
});
const receivedChunks: any = [];
server.on('message', async (msg, rinfo) => {
let message = JSON.parse(msg);
const {index, totalChunks, imageData} = JSON.parse(msg.toString());
if (index && totalChunks && imageData) {
receivedChunks[index] = imageData;
if (receivedChunks.length === totalChunks) {
const completeImage = receivedChunks.join('');

try {
// Save the complete image
const imagePath = `${RNFS.DocumentDirectoryPath}/receivedImage.png`;
await RNFS.writeFile(imagePath, completeImage, 'base64')
.then(async () => {
const fileExists = await RNFS.exists(imagePath);
if (fileExists) {
setExactScore(prevScore => {
const updatedScore = {...prevScore};
updatedScore.player1Image = `file://${imagePath}`;
return updatedScore;
});
} else {
console.error('File not found after saving.');
}
})
.catch(err => console.error('Error saving image:', err));
} catch (error) {
console.error('Error saving image:', error);
}
}
}
}
Ребята, пожалуйста, решите мою проблему. Я просто пытаюсь найти решение, но не могу!

Подробнее здесь: https://stackoverflow.com/questions/792 ... e-udp-data
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»