[flutter] Dio를 사용하여 서버로부터 받은 파일을 열기 혹은 저장하는 방법을 알려주세요.

Dio는 Dart에서 HTTP 요청을 보내고 받는 데 사용되는 강력한 패키지입니다. Dio는 파일 다운로드를 지원하므로, 서버로부터 받은 파일을 열거나 저장하는 데 사용할 수 있습니다.

1. 파일 다운로드

Dio를 사용하여 서버로부터 파일을 다운로드하려면 다음과 같이 작성할 수 있습니다.

import 'package:dio/dio.dart';
import 'package:path_provider/path_provider.dart';

void downloadFile() async {
  Dio dio = Dio();
  try {
    Response response = await dio.download('http://example.com/file.zip', 
        await getTemporaryDirectory() + 'file.zip',
        onReceiveProgress: (received, total) {
          print((received / total * 100).toStringAsFixed(2) + "%");
        });
    print(response.data);
  } catch (e) {
    print(e);
  }
}

위의 코드는 Diodownload 메서드를 사용하여 파일을 다운로드하고, path_provider 패키지를 사용하여 파일 저장 경로를 지정합니다.

2. 파일 열기

서버로부터 받은 파일을 사용자로부터 열 수 있는 방법은 다양합니다. 예를 들어, 다운로드된 파일을 웹뷰를 사용하여 열거나, 기기의 파일 시스템에서 해당 파일을 찾아서 열 수 있습니다.

다음은 다운로드된 파일을 웹뷰를 사용하여 열기 위한 예시 코드입니다.

import 'dart:io';
import 'package:flutter_webview_plugin/flutter_webview_plugin.dart';

void openDownloadedFile(String filePath) {
  final plugin = FlutterWebviewPlugin();
  plugin.launch(filePath, hidden: false);
}

위의 코드는 flutter_webview_plugin 패키지를 사용하여 다운로드된 파일을 웹뷰를 통해 사용자에게 보여줍니다.

이제 Dio를 사용하여 서버로부터 파일을 다운로드하고 열거나 저장하는 방법에 대해 알아보았습니다. 이를 통해 앱에서 서버로부터 받은 파일을 다양하게 활용할 수 있을 것입니다.