在新的Flutter Web 1.9上寻找图像选择器。我找到了一种方法,但不到1.9,现在合并了,不知道我怎么能做到这一点。尝试使用dart:html,但无法发布!仅在跑步时
看来Flutter web 1.10 dev,Universal_html软件包是以下临时空缺职位的不错选择dart:html:
Flutter web 1.10 dev
dart:html
import 'dart:convert'; import 'dart:typed_data'; import 'package:flutter/material.dart'; import 'package:universal_html/prefer_universal/html.dart' as html; class ImagePickerLabPage extends StatefulWidget { @override _ImagePickerLabPageState createState() => _ImagePickerLabPageState(); } class _ImagePickerLabPageState extends State<ImagePickerLabPage> { String name = ''; String error; Uint8List data; pickImage() { final html.InputElement input = html.document.createElement('input'); input ..type = 'file' ..accept = 'image/*'; input.onChange.listen((e) { if (input.files.isEmpty) return; final reader = html.FileReader(); reader.readAsDataUrl(input.files[0]); reader.onError.listen((err) => setState(() { error = err.toString(); })); reader.onLoad.first.then((res) { final encoded = reader.result as String; // remove data:image/*;base64 preambule final stripped = encoded.replaceFirst(RegExp(r'data:image/[^;]+;base64,'), ''); setState(() { name = input.files[0].name; data = base64.decode(stripped); error = null; }); }); }); input.click(); } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text(name), ), floatingActionButton: FloatingActionButton( child: Icon(Icons.open_in_browser), onPressed: () { pickImage(); }, ), body: Center( child: error != null ? Text(error) : data != null ? Image.memory(data) : Text('No data...'), ), ); } }