看来
Flutter web 1.10dev,Universal_html软件包是以下临时空缺职位的不错选择
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 enpred = reader.result as String; // remove data:image/*;base64 preambule final stripped = enpred.replaceFirst(RegExp(r'data:image/[^;]+;base64,'), ''); setState(() { name = input.files[0].name; data = base64.depre(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...'), ), ); }}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)