[flutter] FloatingActionButton을 사용하여 파일 업로드 기능 구현하기

들어가기

Flutter 앱을 개발할 때, 사용자가 이미지나 파일을 업로드하도록 하는 기능은 중요합니다. 이번 포스트에서는 FloatingActionButton을 사용하여 파일 업로드 기능을 구현하는 방법에 대해 알아보겠습니다.

Flutter에서 FloatingActionButton 추가하기

먼저, 원하는 위치에 FloatingActionButton을 추가해야 합니다. 이 버튼을 누르면 파일 선택 다이얼로그가 열리도록 구현할 것입니다.

FloatingActionButton(
  onPressed: () {
    // 파일 선택 다이얼로그 열기
  },
  child: Icon(Icons.upload),
),

위와 같이 FloatingActionButton 위젯을 생성하고 onPressed 콜백에 파일 선택 다이얼로그를 열기 위한 함수를 호출하도록 설정합니다.

파일 선택 다이얼로그 열기

파일을 선택하기 위해서는 file_picker 라이브러리를 사용할 수 있습니다. 먼저, pubspec.yaml 파일에 해당 라이브러리를 추가합니다.

dependencies:
  file_picker: ^4.0.0

그리고 다음과 같이 파일 선택 다이얼로그를 열 수 있습니다.

import 'package:file_picker/file_picker.dart';

void openFileExplorer() async {
  FilePickerResult? result = await FilePicker.platform.pickFiles();

  if (result != null) {
    // 선택된 파일 처리
    PlatformFile file = result.files.first;
    print(file.name);
  } else {
    // 취소됨
  }
}

파일 선택 다이얼로그를 열어 선택된 파일의 정보를 얻습니다.

파일 업로드 기능 구현하기

이제 파일 선택 후에 해당 파일을 업로드하는 기능을 추가할 차례입니다. 파일을 업로드하려면 특정 서비스나 서버와 통신하여 파일을 전송해야 합니다. 여기서는 Firebase Storage를 사용하는 예제를 살펴보겠습니다.

import 'package:firebase_storage/firebase_storage.dart';

void uploadFile(String filePath) async {
  File file = File(filePath);
  Reference storageReference = FirebaseStorage.instance.ref().child('uploads/${file.path.split('/').last}');
  UploadTask uploadTask = storageReference.putFile(file);
  await uploadTask.whenComplete(() => print('파일 업로드 완료'));
}

위의 코드는 Firebase Storage를 사용하여 파일을 업로드하는 과정을 보여줍니다.

마무리

FloatingActionButton을 사용하여 파일 업로드 기능을 구현하는 방법을 살펴보았습니다. 이를 응용하여 사용자가 선택한 파일을 업로드하는 기능을 구현할 수 있습니다. 필요에 따라 서버와의 통신을 위해 API 호출이나 다른 클라우드 스토리지를 사용할 수도 있습니다.


이제 파일 업로드 기능을 구현하기 위해 FloatingActionButton을 설정하는 방법을 알게 되었습니다. 이를 통해 Flutter 앱이 더욱 유용하고 다양한 기능을 제공할 수 있게 될 것입니다.

참고 자료: Flutter 공식 문서, file_picker 라이브러리, Firebase Storage