[flutter] Dio를 사용하여 파일을 업로드하는 방법을 알려주세요.

Dio는 Dart로 작성된 간단한 HTTP 클라이언트 라이브러리로, 파일 업로드와 같은 다양한 HTTP 요청을 쉽게 처리할 수 있습니다. 아래에서는 Dio를 사용하여 파일을 업로드하는 방법을 알아보겠습니다.

1. Dio 라이브러리 추가

먼저, pubspec.yaml 파일에 Dio 라이브러리를 추가합니다.

dependencies:
  dio: ^4.0.0

의존성을 추가한 후, 터미널에서 flutter pub get 명령을 실행하여 라이브러리를 다운로드합니다.

2. 파일 업로드 코드 작성

이제 파일을 업로드하는 코드를 작성하겠습니다. 아래 예제에서는 Dio를 사용하여 파일을 업로드하고, 업로드된 파일의 응답을 받아옵니다.

import 'package:dio/dio.dart';

void uploadFile() async {
  Dio dio = Dio();
  
  String url = 'https://example.com/upload'; // 업로드할 API 엔드포인트 URL
  
  FormData formData = FormData.fromMap({
    'file': await MultipartFile.fromFile('/path/to/file.jpg', filename: 'file.jpg'),
    'otherData': 'otherValue',
  });

  try {
    Response response = await dio.post(url, data: formData);
    print(response.data); // 업로드 후의 응답 데이터 처리
  } catch (e) {
    print('업로드 실패: $e');
  }
}

위 코드에서는 FormData 클래스를 사용하여 파일 및 기타 데이터를 담은 후, Dio의 post 메서드를 사용하여 업로드 요청을 수행합니다. 업로드에 성공하면 서버에서 받아온 응답 데이터를 처리할 수 있습니다.

이제 위 예제를 참고하여 파일 업로드 기능을 구현할 수 있을 것입니다. Dio를 사용하면 간편하게 파일 업로드를 처리할 수 있으며, 다양한 옵션을 통해 더욱 세밀한 설정도 가능합니다.

더 자세한 내용은 Dio 공식 문서를 참고하시기 바랍니다.