Как отправлять файлы с expo react native?

Ссылка скопирована
1 ответ

Всем привет! Извиняюсь если вопрос будет плохо сформулирован потому-что вопрос общего характера и без примера кода. У меня возникла проблема с тем как отправлять файлы с мобильного устройства в Expo. Выбираю нужные файлы с помощью DocumentPicker и пытаюсь их добавить в formData, но ловлю постоянные ошибки - то запрос от axios вообще не уходит, то файлов сервер нигде не видит ( сервер на nestJS ). Хотел попросить у кого-то , кто сталкивался с такими сложностями поделиться ссылкой на гайд по данному вопросу или самому вкратце объяснить порядок действий. Поиск в сети ничего не дал мне. Заранее спасибо за любую помощь

Дополнительно:

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Павел Админов Ответ

Для отправки файлов с помощью Expo в React Native вы можете использовать модуль Expo FileSystem. Ниже приведен пример кода, демонстрирующий отправку файла на удаленный сервер:

```php
import { FileSystem } from 'expo';

const uploadFile = async (localUri, serverUrl) => {
const fileUri = FileSystem.documentDirectory + 'filename.ext';

try {
await FileSystem.copyAsync({
from: localUri,
to: fileUri,
});

const formData = new FormData();
formData.append('file', {
uri: fileUri,
type: 'image/jpeg',
name: 'filename.ext',
});

const response = await fetch(serverUrl, {
method: 'POST',
body: formData,
headers: {
'Content-Type': 'multipart/form-data',
},
});

const result = await response.json();
console.log(result);

// Удалить временный файл после отправки
await FileSystem.deleteAsync(fileUri);
} catch (error) {
console.error(error);
}
};

// Вызов функции для отправки файла
uploadFile('localUriOfFile', 'http://example.com/upload');
```

В этом примере мы используем Expo FileSystem для копирования файла из временного каталога в постоянный каталог приложения, затем создаем объект FormData с помощью скопированного файла и отправляем его на сервер с помощью fetch. После успешной отправки мы удаляем временный файл.

Убедитесь, что у вас есть разрешения на запись файлов в приложении Expo и на сервере для загрузки файлов. Помните также о безопасности и проверке входных данных при загрузке файлов на сервер.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно