universal_file_handler 0.1.2 copy "universal_file_handler: ^0.1.2" to clipboard
universal_file_handler: ^0.1.2 copied to clipboard

A Flutter package to open, view, cache, and share files including image, PDF, Word, and Excel. Supports network, asset, and local files.

Universal File Handler #

A Flutter package to open, view, cache, and share files such as PDF, images, Word, and Excel. Supports network, asset, and local file handling.

Overview #

Universal File Handler helps you easily open and manage different file types in Flutter apps with a single API.

Features #

  • Open images, PDFs, Word, and Excel files
  • Smart memory and disk caching
  • File type detection
  • Share files easily
  • Supports network, asset, and local files

Keywords #

Flutter file opener, Flutter open PDF, Flutter open image, Flutter document viewer, Flutter share file, Flutter Excel viewer, Flutter Word file opener, Flutter file cache


Flutter Open PDF #

Open and view PDF files directly inside your Flutter app.

Flutter Open Image #

View images using a built-in image viewer.

Flutter File Sharing #

Share any file (PDF, image, Word, Excel) easily.

Flutter File Cache System #

Automatically cache files for faster access and offline usage.


Usage #

Open File #

await UniversalFileHandler.open(
  context,
  fileUrl,
);

// Share file in Flutter
await UniversalFileHandler.share(fileUrl);

ElevatedButton(
  onPressed: () {
    UniversalFileHandler.open(context,fileUrl);
  },
  child: Text("Open File"),
);


## Example

import 'package:flutter/material.dart';
import 'package:universal_file_handler/universal_file_handler.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Universal File Handler Demo',
      theme: ThemeData(primarySwatch: Colors.blue),
      home: const FileExamplePage(),
    );
  }
}

class FileExamplePage extends StatelessWidget {
  const FileExamplePage({super.key});

  static const imageUrl =
      "https://picsum.photos/400/600";

  static const pdfUrl =
      "https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf";

  static const excelUrl =
      "https://github.com/sagar9098/universal_file_handler/tree/master/example/assets/excel.xlsx";

  static const wordUrl =
      "https://github.com/sagar9098/universal_file_handler/tree/master/example/assets/word.doc";

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text("File Handler Example")),
      body: ListView(
        padding: const EdgeInsets.all(16),
        children: [

          ///  PREPARE FILE (Download + Cache)
          ElevatedButton(
            onPressed: () async {
              final file = await UniversalFileHandler.prepareFile(pdfUrl);
              debugPrint("Saved at: ${file.path}");
            },
            child: const Text("Download & Cache PDF"),
          ),

          const SizedBox(height: 10),

          ///  OPEN IMAGE
          ElevatedButton(
            onPressed: () async {
              await UniversalFileHandler.open(context,
                imageUrl,
              );
            },
            child: const Text("Open Image"),
          ),

          const SizedBox(height: 10),

          /// OPEN PDF
          ElevatedButton(
            onPressed: () async {
              await UniversalFileHandler.open(context,
                pdfUrl,
              );
            },
            child: const Text("Open PDF"),
          ),

          const SizedBox(height: 10),

          ///  OPEN EXCEL (External App Required)
          ElevatedButton(
            onPressed: () async {
              await UniversalFileHandler.open(context,excelUrl);
            },
            child: const Text("Open Excel"),
          ),

          const SizedBox(height: 10),

          ///  OPEN WORD (External App Required)
          ElevatedButton(
            onPressed: () async {
              await UniversalFileHandler.open(context,wordUrl);
            },
            child: const Text("Open Word"),
          ),

          const SizedBox(height: 10),

          ///  SHARE FILE
          ElevatedButton(
            onPressed: () async {
              await UniversalFileHandler.share(pdfUrl);
            },
            child: const Text("Share PDF"),
          ),

          const SizedBox(height: 10),

          ///  ASSET FILE TEST
          ElevatedButton(
            onPressed: () async {
              if(UniversalFileHandler.getFileType("assets/sample.jpg")==FileType.image) {
                await UniversalFileHandler.open(context,
                  "assets/sample.jpg",
                );
              }
            },
            child: const Text("Open Asset Image"),
          ),
          const SizedBox(height: 10),
          ElevatedButton(
            onPressed: () async {
              if(UniversalFileHandler.getFileType("assets/word.doc")==FileType.word) {
                await UniversalFileHandler.open(context,
                  "assets/word.doc",
                );
              }
            },
            child: const Text("Open Asset Word File"),
          ),
          const SizedBox(height: 10),
          ElevatedButton(
            onPressed: () async {
              if(UniversalFileHandler.getFileType("assets/excel.xlsx")==FileType.excel) {
                await UniversalFileHandler.open(context,
                  "assets/excel.xlsx",
                );
              }
            },
            child: const Text("Open Asset Excel File"),
          ),
        ],
      ),
    );
  }
}
1
likes
160
points
0
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

A Flutter package to open, view, cache, and share files including image, PDF, Word, and Excel. Supports network, asset, and local files.

Repository (GitHub)
View/report issues

License

MIT (license)

Dependencies

flutter, flutter_pdfview, http, open_filex, path_provider, photo_view, share_plus

More

Packages that depend on universal_file_handler