file_picker_web 套件為 file_picker 插件提供了一個 Web 平台的實作,讓使用者能透過瀏覽器介面選擇檔案。它支援直接從瀏覽器串流傳輸檔案資料,並輕鬆將檔案載入應用程式中。此套件專為 Flutter Web 應用的無縫整合而設計,確保在不同瀏覽器中具有一致的檔案處理體驗。該套件屬於更廣泛的 file_picker 生態系統的一部分,專注於 Web 特定功能,例如檔案輸入處理與基於串流的讀取。
適用情境
基於Web的檔案上傳
串流檔案內容,無需完整下載
在網頁表單中整合檔案選擇
正在加載檔案以進行處理或預覽
在Web應用程式中支援多種檔案類型
主要特色
瀏覽器檔案選擇
檔案串流支援
跨瀏覽器相容性
輕量級網路整合
用於檔案載入的簡單 API
適合對象
Flutter Web 應用需要檔案輸入
需要即時檔案串流的應用程式
在網頁上使用 file_picker 插件的開發者
涉及檔案預覽或上傳的項目
針對桌面和行動瀏覽器的網頁應用
使用建議
需要 file_picker 核心套件
僅限Web平台
可能需要處理瀏覽器權限
依賴於瀏覽器的檔案輸入功能
無原生檔案系統存取
原始 README
以下為關聯原始碼儲存庫的 README 原文快照,最新內容請造訪原始碼儲存庫。
File Picker
A Flutter plugin that lets you use the native file explorer to pick single or multiple files, with extension filtering, directory selection, and save-file dialogs, across Android, iOS, Linux, macOS, Windows, and Web.
This repository is a Melos workspace hosting file_picker as a federated plugin: a single cross-platform API package on top of one implementation package per platform, all versioned and published independently.
Web implementation, including Wasm compilation support.
Almost all apps should only ever depend on file_picker directly. The platform packages are pulled in transitively and registered automatically by Flutter's plugin system; you only reach for one of them directly if you need a platform-specific API that isn't exposed on the shared facade (for example FilePickerDarwin.skipEntitlementsChecks() on macOS).
Quick start
dependencies:file_picker:^13.0.0
import'package:file_picker/file_picker.dart';
final file = awaitFilePicker.pickFile();
if (file != null) {
print(file.name);
print(await file.length()); // Returns Future<int?> (or use file.lengthSync())
}
See packages/file_picker/README.md for the full feature list, platform compatibility chart, and more usage examples (multiple files, extension filters, directory picking, save-file dialogs).
Migration
Upgrading to v13? See the Migrating to v13 Guide for details on PlatformFile.length() returning Future<int?> and the removal of legacy v12-deprecated parameters.
Upgrading from pre-v12? See the Migrating to v12 Guide for the federated architecture changes (FilePicker.pickFiles() returning List<PlatformFile>, platform options, and streaming).
Contributions are welcome. Please read CONTRIBUTING.md before opening a pull request, it covers testing requirements, versioning, and changelog conventions for this workspace.
To work on this repository locally:
dart pub global activate melos
melos bootstrap
melos run analyze # flutter analyze across every package
melos run test# flutter test across every package
Each package keeps its own pubspec.yaml and CHANGELOG.md and is released independently, only the package(s) you actually changed need a version bump.
Credits
file_picker was created and maintained by Miguel Ruivo, starting in 2018, growing it from a single Android/iOS plugin into the federated, cross-platform package it is today. This repository continues that work under new ownership, built entirely on the foundation of his years of effort.
Thank you, Miguel.
License
MIT, see LICENSE. Every package in this repository is released under the same license.